1. 程式人生 > >為何不用stop()和如何終止執行緒

為何不用stop()和如何終止執行緒

為什麼不用stop()

http://www.cnblogs.com/greta/p/5624839.html

http://yeziwang.iteye.com/blog/844649

stop會在任何時刻丟擲ThreadDeath異常並且釋放了它所佔有的鎖,而此時程式猿沒做任何準備

多數用

synchronized (lock) {
if(stop)
return;
......

}

或者

try {
synchronized (lock) {

while(true){
Thread.sleep(1000);

xxxxxxxxxxxx

}

}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

在sleep的時候別人呼叫interrupt中斷執行緒