Java多线程:线程终止、应用结束与内存模型解析
1. 线程执行的终止
线程启动后便处于活动状态, isAlive 方法会返回 true 。线程会一直保持活动状态,直到终止,终止方式主要有以下三种:
- run 方法正常返回 :线程完成任务后, run 方法正常结束,线程自然终止。
- run 方法异常结束 :若 run 方法执行过程中出现未捕获的异常,线程会突然终止。
- 应用程序终止 :当应用程序结束时,相关线程也会终止。
线程终止时不会持有任何锁,因为在 run 方法完成时,所有同步代码都已退出。
2. 线程的取消
在很多情况下,我们创建线程执行任务后,可能需要在任务完成前取消该任务,例如用户在界面中点击取消按钮。要使线程可取消,程序员需要做一些额外的工作,但这是一种干净且安全的线程终止机制。
可以通过中断线程并让线程监控和响应中断来请求取消线程。中断线程只是提醒它需要关注,通常是让它停止执行,但不会强制线程停止,不过会中断正在睡眠或等待的线程。
以下是与线程中断相关的方法:
- interrupt :向线程发送中断信号。
- isInterrupted :测试线程是否已被中断。
超级会员免费看
订阅专栏 解锁全文
852

被折叠的 条评论
为什么被折叠?



