java多线程的理解

Interrupt()

该方法给线程设置中断标记,标记当前线程被中断,可以通过Thread.interrupted()来了解当前线程是否处于中断状态,该方法会自动清除线程的中断标记,Thread.currentThread().isInterrupted()方法不会清除线程的中断标记,通常用该方法在一个线程中查看另外一个线程的中断状态。

通常的做法如下:

while()

{

.//somework to do.

if(Thread.isInterrupted())

{

thrownew InterruptedException();

}

}

另外,线程的处于阻塞状态的某些方法具有自动处理中断标记的能力,即当调用interrupt方法后,这类阻塞状态的方法会自动抛出InterruptedException,并清除中断标记。这类方法有以下几种

  1. Object.wait()/sleep()

  2. java.util.concurrent的大多数结构体

  3. JavaNIO

猜你喜欢

转载自blog.csdn.net/jinlxz/article/details/38908965