中断线程

中断线程是一个动作,并不是一种线程。它代表一个线程向另外一个发出一个终止的信号,具体如何处理这个终止信号,由受到的线程自行决定。(与计算机中通常的中断不同,线程的中断没有传递额外数据的能力)。

线程阻塞

如果线程被阻塞,就无法检查中断状态。这里就要引入 InterruptedException 异常。 当在一个被 sleep 或 wait 调用阻塞的线程上调用 interrupt 方法时,那个阻塞调用(即 sleep 或 wait 调用)将被一个 InterruptedException 异常中断。有一些阻塞 I/O 调用不能被中断,对此应该考虑选择可中断的调用。

守护线程

可以通过调用 t. setDaemon (true) 将一个线程转换为守护线程(daemon thread)。这样一个线程并没有什么魔力。守护线程的唯一的用途是为其他线程提供服务。计时器线程就是一个例子,它定时地发送“计时器嘀咯”信号给其他线程,另外清空过时缓存项的线程也是守护线程。当只剩下守护线程时,虚拟机就会退出。因为如果只剩下守护线程,就没必要继续运行程序了。