并发基础(九) java线程的终止与中断
1、簡單了解一下:為何不贊成使用 Thread.stop、Thread.suspend 和 Thread.resume?
??suspend 、resume、stop方法分別完成了線程的暫停、恢復(fù)、終止的工作。不建議使用原因:是因為這三個方法帶來的副作用,如suspend( )方法,調(diào)用后,線程就會一直占用資源睡眠,直到調(diào)用resume( )恢復(fù)后,才可以運(yùn)行。這樣很容易引發(fā)死鎖。同樣,stop( )方法在終結(jié)一個線程時不會保證線程的資源正常釋放,因此會導(dǎo)致程序可能工作在不確定的狀態(tài)下。
??線程的暫停、恢復(fù)操作可以用 等待/通知 機(jī)制來替代。但線程的終止就要用戶去實(shí)現(xiàn)了。
詳細(xì)可參考:http://bjzhkuang.iteye.com/blog/1748396
2、如何優(yōu)雅安全地終止線程
??終止一個線程 本質(zhì)上就是線程間的通信交互的過程。因此,線程間的通信方式:共享變量、流、中斷都可以用來實(shí)現(xiàn)終止線程的機(jī)制。最常用的方式便是“中斷”;
下面的例子是:除了中斷,還可利用boolean變量來控制是否需要終止線程;
運(yùn)行結(jié)果:
線程threadOne Count i = 239418320
線程threadTwo Count i = 235374425
出處:http://www.cnblogs.com/jinggod/p/8486134.html
總結(jié)
以上是生活随笔為你收集整理的并发基础(九) java线程的终止与中断的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并发基础(八) java线程的中断机制
- 下一篇: 并发基础(十) 线程局部副本Thread