昨天在写一个面试题的时候,发现线程中断哪里还有些不太明白的地方,今日特地来整理以下;
线程中断的概念
中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。
线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序。
在java中一般使用stop()方法来强制中断程序的运行,而建议用Interrupt(中断)来完成对当前操作的中止;
java中关于Interrupt的几种方法------
除非当前线程中断自身,这是始终允许的,所以调用此线程的checkAccess方法,这可能会导致抛出SecurityException
如果该线程阻塞的调用wait() , wait(long) ,或wait(long,
int)的方法Object类,或者在join() , join(long) , join(long, int) , sleep(long) ,或sleep(long, int)这个类的方法,那么它的中断状态将被清除**,并且将收到一个InterruptedException 。如果该线程在可阻止在I / O操作InterruptibleChannel则信道将被关闭,该线程的中断状态将被设置&