如何實現與多個生產者和多個消費者的生產者消費者問題? 我們應該如何創建線程?Java生產者消費者線程
1
A
回答
1
創建一個生產者和消費者類,它們都是
,擴展Thread類
實現Runnable接口,並在需要時調用它們。你卡在哪裏?
2
也許你應該使用古爾更:-)
嘗試This article和this source code獲取更多信息。
3
Sun有一個包含基本線程類的Concurrency教程。有關於Defining and Starting a Thread的信息應該回答你如何很好地創建一個線程問題。
0
ConcurrentQueue q = new ConcurrentQueue(100);
ExecutorService service = Executors.newFixedThreadPool(20);
service.execute(new Producer(q));
for (int i=0; i < 18; i++) {
service.execute(new Consumer(q));
}
如果雙方Consumer
和Producer
是擴展了Runnable,並採取Queue
作爲其構造函數的參數自定義類。
相關問題
- 1. java線程:生產者 - 消費者
- 2. Java線程生產者和消費者
- 3. Java生產者 - 消費者:生產者不「通知()」消費者
- 4. 消費者生產者多線程消費者不會消逝
- 5. Java生產者消費模式線程
- 6. 多線程生產者/消費者
- 7. 多線程生產者/消費者
- 8. 如何線程(生產者/消費者)
- 9. 消費者生產者線程問題
- 10. boost ::線程生產者消費者
- 11. 生產者/消費者線程中的油門消費者
- 12. Java:信號量:生產者消費者:線程和線程組
- 13. Java線程生產者消費者程序
- 14. Java線程生產者和消費者程序問題
- 15. 使用Java中的多線程的生產者/消費者
- 16. 多生產者/一個消費者Java多線程
- 17. 生產者和消費者的Java同步隊列線程
- 18. java生產者消費者線程監控音頻
- 19. Java生產者消費者1 - N線程
- 20. Java多線程:緩慢的生產者和快速消費者
- 21. 生產者/消費者死鎖多線程Java
- 22. 生產者消費者在PHP和Java
- 23. 生產者消費者變種java BlockingQueues
- 24. 生產者消費者在Java中
- 25. Java的消費者/生產者
- 26. Java生產者,蟒蛇消費者,ActiveMQ
- 27. 生產者/消費者
- 28. 生產者消費者
- 29. POSIX生產者 - 消費者
- 30. Clojure生產者消費者
不是擴展'Thread',而是建議實現'Runnable'或'Callable',並將'Runnable'封裝在'Thread'中或者使用'Executor'調度'Callable '。 –
justkt
2010-04-22 14:17:51
@justkt訣竅:)。雖然我不知道。這是性能問題嗎?爲什麼我們不擴展線程? – Feyyaz 2010-04-22 14:22:49
總的來說,我一直認爲構圖比繼承更受歡迎。具有Thread的一部分的Runnable是組合。擁有一個Thread子類是繼承。這是出於可維護性的目的。從Sun開始[使用]一個Runnable對象,更通用,因爲Runnable對象可以繼承Thread以外的類。「 – justkt 2010-04-22 14:26:27