2009-12-08 108 views
2

我已經看到幾個評論,說明執行程序比線程更好,但是如果有多個線程通過有界緩衝區進行通信(如基於流程編程),爲什麼無論如何你必須使用線程(使用newCachedThreadPool(?))時,你會使用Executors嗎?此外,我使用isAlive(),interrupt()這樣的方法 - 如何獲得線程句柄?執行程序優於多線程應用程序中的線程

有沒有人有我可以抄襲的示例代碼? ;-)

+0

我建議你購買並閱讀http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/ref=sr_1_1?ie=UTF8&s=books&qid=1260237309&sr=8-1封面蓋。 – cletus 2009-12-08 01:55:31

+0

不是很有幫助,@Cletus!我對線程和鎖有所瞭解 - 我不打算花40美元來獲得一個問題的答案:-) – 2009-12-08 20:57:19

+0

一天後沒有答案,所以我會在太陽論壇上嘗試......謝謝! – 2009-12-09 18:07:01

回答

1

執行者基本上是線程的抽象。它們使您在Runnable/Callable實例中隔離您的潛在並行邏輯,同時將您從手動創建和啓動線程或管理池中解放出來。作爲應用程序邏輯的一部分,您仍然需要處理依賴關係。

如果您想與應用程序邏輯的線程進行交互/操作,您可以跳過使用執行程序。關於獲取線程,您始終可以執行Thread.currentThread()以從任何正在執行的上下文中獲取當前線程。