Home > Java > javaTutorial > Java uses the interrupt() function of the Thread class to interrupt the execution of a thread

Java uses the interrupt() function of the Thread class to interrupt the execution of a thread

PHPz
Release: 2023-07-24 13:41:12
Original
1482 people have browsed it

Java uses the interrupt() function of the Thread class to interrupt the execution of threads

In multi-thread programming, sometimes it is necessary to interrupt the executing thread. In Java, you can use the interrupt() function of the Thread class to interrupt the execution of a thread. This article will introduce how to use the interrupt() function and provide code examples.

interrupt() function is used to interrupt the execution of threads. Calling this function will set the thread's interrupt flag bit to true, but the thread will not terminate execution immediately at this time. The specific interrupt operation is decided by the developer. You can use the thread's isInterrupted() method to check the interrupt flag bit and exit the thread execution at the appropriate time.

The following is a sample code that uses the interrupt() function to interrupt a thread:

public class MyThread extends Thread {
    public void run() {
        while (!isInterrupted()) {
            // 线程的执行逻辑
            System.out.println("Thread is running...");
        }
        System.out.println("Thread is interrupted, exiting...");
    }

    public static void main(String[] args) throws InterruptedException {
        MyThread thread = new MyThread();
        thread.start();

        // 主线程休眠一段时间后中断子线程
        Thread.sleep(1000);
        thread.interrupt();
    }
}
Copy after login

In the above code, we define a MyThread thread class that inherits from the Thread class. In the run() method, we use a while loop to simulate the execution logic of the thread. Before each loop starts, we use the isInterrupted() method to check the thread's interrupt flag bit. If it is true, exit the loop. When the thread is interrupted, a prompt message will be output. In the main() method, we create a MyThread thread object and use the start() method to start the thread. Then, after the main thread sleeps for 1 second, the interrupt() method of the thread object is called to interrupt the execution of the thread.

Run the above code, you can see the following output:

Thread is running...
Thread is running...
Thread is running...
Thread is running...
Thread is running...
Thread is interrupted, exiting...
Copy after login

It can be seen from the output that the thread exited execution immediately after being interrupted. What needs to be noted here is that when the thread is interrupted, if the thread is in a blocked state (for example, sleep(), wait(), etc. methods are called), an InterruptedException will be thrown. After catching the exception, you can handle it accordingly as needed.

In actual development, the interrupt() function can be used to stop the thread gracefully. By judging the interrupt flag bit at the appropriate position in the run() method and exiting the loop or processing other logic, the thread can stop execution in time after receiving the interrupt signal to avoid unnecessary waste of resources.

To sum up, use the interrupt() function of Java's Thread class to interrupt the execution of the thread. By properly judging the interrupt flag, we can achieve a graceful stop of the thread. When writing multi-threaded programs, it is very important to understand and master the use of the interrupt() function.

The above is the detailed content of Java uses the interrupt() function of the Thread class to interrupt the execution of a thread. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template