12.3.1 中断线程
interrupt 方法可以用来请求终止一个线程.
- 已经废弃 stop 方法可以强制终止线程
调用 interrupt 方法时会设置线程的中断状态.
- 每个线程都应该不时地检查这个标志
查看是否设置中断状态:
- 如果线程被阻塞, 那么无法检查
有个疑惑的地方,
被 sleep 或 wait 调用阻塞的线程上调用 interrupt 方法时
, 都被阻塞了怎么调用 interrupt 方法?
将中断解释为终止运行, 用法:
调用 sleep (可中断方法) 之前不要调用 isInterrupted(), sleep 会清除中断状态并抛出 InterruptedException:
12.3.2 守护线程
转换为守护线程:
t.setDaemon(true);
12.3.3 线程名
var t = new Thread(runnable);
t.setName("Web crawler");
12.3.4 未捕获异常的处理器
实现 Thread.UncaughtExceptionHandler 接口
ThreadGroup 实现了 Thread.UncaughtExceptionHandler.
12.3.5 线程优先级
setPriority()