Java interrupt

来源:互联网 发布:java web开发薪资 编辑:程序博客网 时间:2024/06/05 16:57

这玩意感觉(没去查源代码)本质只是改了一个共享变量(假设其为interrupted),sleep,wait,join这三种阻塞函数会去查看这个变量,如果发现interrupted = true,就抛出异常终止阻塞。

 

所以如果你在主线程中调用interrupt函数的时间>子线程调用三个函数的时间,或者你在子线程根本就没有调这三个函数,那么interrupt不起作用。

要让interrupt起作用,

1)要么你自己在子线程中判断是不是interruptted=true:while(!this.isInterrupted()){....}

2)要么确保在主线程调用interrupt之后,你的子线程会调用上述三个阻塞线程。

原创粉丝点击