我執行Java應用程序執行並行處理: 當我的應用程序啓動,屬於一個線程池 4個線程創建的。 然後,我開始接收添加到LinkedBlockingQueue的對象。每個對象都有一個ID,並根據該ID執行預定義的任務。我的「隊列使用者」是那些初始化的4個線程,他們開始將對象帶出隊列,並執行與每個對象相對應的任務。並行處理Java中 - 計劃任務線程
可以定義其中Thread將處理每個對象?我想「爲每個線程安排任務」。
例如:
- 當第一對象被從隊列中取出,他將通過線程1進行處理。
- 如果第二個對象作爲與第一個對象不同的ID,它將由Thread2處理。
- 如果第三個對象的ID與第一個對象的ID相同,它將「轉到Thread1」。
我該如何實現?
謝謝
發表當前的代碼 –
我想你可以,但這種排除了有一個隊列和多個線程的目的。我假設有多個線程的意思是通過使用並行處理來提高吞吐量。所以理想情況下,任何空閒線程都會立即啓動新的工作並開始處理。在你描述的場景中,似乎線程可能處於空閒狀態,因爲隊列中的下一個任務'屬於'某個其他正在忙的線程。你確定你不想要4個獨立的隊列嗎? –