码迷,mamicode.com
首页 > 编程语言 > 详细

Java Thread.interrupt方法

时间:2014-05-29 21:02:07      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:c   java   tar   http   a   int   

部分内容引用CSDNdr8737010

比如你在main线程中,开启了一个新的线程new Thread

首先,每个线程内部都有一个boolean型变量表示线程的中断状态,true代表线程处于中断状态,false表示未处于中断状态。

而interrupt()方法的作用只是用来改变线程的中断状态(把线程的中断状态改为true,即被中断)。

A线程调用wait,sleep,join方法,这时B线程调用了A的interrupt方法而抛出的InterruptedException是wait,sleep,join方法内部不断检查中断状态的值,自己抛出来的,并不是直接由interrupt方法直接引起的。
抛出InterruptedException以后,线程又会回到非中断状态(false)。

因此interrupt()方法代表着外界希望中断此线程,只是希望,具体怎么处理还是线程内部来做,一般情况下interrupt()方法可以使处于阻塞状态的线程抛出InterruptedException从而结束阻塞状态。

 

结论:

如果你的线程里,没有堵塞在wait sleep join上,那你得自己循环判断isInterrupt 自己处理

如果你用了wait sleep join 阻塞了,那么会自动不断检查标志位,然后抛出异常。

 

Java Thread.interrupt方法,布布扣,bubuko.com

Java Thread.interrupt方法

标签:c   java   tar   http   a   int   

原文地址:http://www.cnblogs.com/whx20202/p/3758216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!