我有一些developpements要做,我試着看看是否有一個設計模式使用。 問題很簡單:java線程:生產者 - 消費者
我有許多啓動胎面一個主線程。主線程必須等待每個線程完成,然後執行其他操作。 現有的代碼有點難看。我有一個while循環檢查線程組,看看是什麼運行:
//launch threads
.....
//wait for threads to finish
while (ThreadRepository.getInstance().isActiveThreadGroup(myGroupId)) {
Thread.sleep(5000);
}
//doing something else
所以,你看,while循環繼續運行,直到沒有線程運行。
我想在模式生產者 - 消費者,我願做這樣的事情:
使用BlockingQueue的一些比如,每個線程放(或服用)在它的東西。 而不是有時間和睡眠我想有像 myQueue.take()
東西,但等待隊列是空的。 當爲空時,表示沒有線程在運行。
我嘗試在互聯網上搜索,但我沒有發現匹配我的問題的東西。
有沒有人知道最有效地解決我的問題?
如果提前確定了參數的數量,則可以使用'CountDownLatch'。 – 2012-04-19 08:54:31
Marko,你是什麼意思,「沒有返回貢獻者的青睞」? – 2012-04-19 09:32:26