我有一个使用线程的场景。如何在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