Java Thread interrupt() 方法

2025 年 3 月 21 日 | 阅读 2 分钟

线程类的 interrupt() 方法用于中断线程。如果线程处于睡眠或等待状态(即调用了 sleep() 或 wait()),则可以使用 interrupt() 方法通过抛出 InterruptedException 来中断线程执行。

如果线程不处于睡眠或等待状态,则调用 interrupt() 方法会执行正常行为,不会中断线程,但会将中断标志设置为 true。

语法

返回

此方法不返回任何值。

Exception

SecurityException: 如果当前线程无法修改该线程,则会抛出此异常。

示例 1:中断一个停止工作的线程

在此程序中,中断线程后,我们抛出了一个新异常,因此它将停止工作。

输出

Exception in thread "Thread-0" java.lang.RuntimeException: Thread interrupted...java.lang.InterruptedException: sleep interrupted
	at JavaInterruptExp1.run(JavaInterruptExp1.java:10)

示例 2:中断一个没有停止工作的线程

在此示例中,中断线程后,我们处理了异常,因此它将跳出睡眠状态,但不会停止工作。

输出

Exception handled java.lang.InterruptedException: sleep interrupted
thread is running...

示例 3:中断一个正常工作的线程

在此程序中,线程执行期间没有发生异常。在这里,interrupt() 方法仅将中断标志设置为 true,Java 程序员以后可以使用该标志来停止线程。

输出

1
2
3
4
5
 
下一主题Java 线程