我有一個使用線程的場景。如何在Java中實現多線程池
首先,我有一個文件夾,其中有經常更新的文件。 因此,我寫了一個線程,讀取文件夾的內容,並將文件名寫入靜態列表,並在新文件進入時更新列表。
其次我寫了另一個線程,它從列表中獲取文件名並用這些文件做一些處理。
這兩個線程連續運行,一個檢查新文件,一個處理新文件。
現在我需要在運行三個線程的同時處理三個文件。當一個線程完成處理時,另一個線程從列表中獲取另一個文件名並啓動該進程。
所以我需要一些機制,有三個線程,並檢查它們是否存活,並相應地啓動一個新的線程和文件列表也經常更新。
我也看着ExecutorService
,但雖然列表得到更新,我無法提供它的更新列表。
感謝, 桑迪普
不是很清楚,恐怕。爲什麼是三個,而不是一個任意數字?爲什麼要檢查線程以查看它們是否還活着? – 2011-02-25 04:38:18
我的意思是添加 - 它聽起來像使用的自然數據結構是一個隊列(http://download.oracle.com/javase/6/docs/api/java/util/Queue.html)。爲了利用這一點,您可以讓消費者線程從隊列中讀取數據,並在成功從中取出項目時進行工作。 – 2011-02-25 04:39:57