如下阻塞佇列+執行緒的**,很常見,當服務停止時,如何停止被blockingqueue阻塞的執行緒?
blockingqueue
blockingqueue =
newarrayblockingqueue(10
);final thread thread =
newthread
(new
runnable()
catch
(interruptedexception e)}}
});
方法是當服務停止時,觸發乙個操作,給blockingqueue放乙個特殊的元素,如上面,傳乙個值為-1的元素代表停止事件,執行緒取到這個特殊元素時就跳出迴圈:
final
int stop_code =-1
;blockingqueue
blockingqueue =
newarrayblockingqueue(10
);final thread thread =
newthread
(new
runnable()
//do something useful
system.out.
println
(el);}
catch
(interruptedexception e)}}
});
如何停止執行緒?
使用退出標誌,使執行緒正常退出,也就是當run方法完成後執行緒終止。使用stop方法強行終止執行緒 這個方法不推薦使用,因為stop和suspend resume一樣,也可能發生不可預料的結果 使用interrupt方法中斷執行緒。表示讓當前等待的執行緒直接丟擲異常 如下 package com.n...
如何停止weblogic服務
方法1 進console停伺服器,但是通常關的不徹底 方法2 windows進安裝目錄下user projects下對應的domain的bin下,找stopweblogic.cmd,如果想停管理server,同時執行stopmanagedweblogic.cmd,linux或者unix也一樣,只不過...
如何 停止node程序?
events.js 85 throw er unhandled error event error listen eaddrinuse at exports.errnoexception util.js 746 11 at server.listen2 net.js 1146 14 at liste...