像这样产生线程并不是要走的路。使用an
ExecutorService并将池指定为5。将所有文件放在a
BlockingQueue或另一个线程安全的集合中,所有正在执行的文件都可以随意使用
poll()。
public class ThreadReader { public static void main(String[] args) { File f = null;//folder final BlockingQueue<File> queue = new ArrayBlockingQueue<File>(1000); for(File kid : f.listFiles()){ queue.add(kid); } ExecutorService pool = Executors.newFixedThreadPool(5); for(int i = 1; i <= 5; i++){ Runnable r = new Runnable(){ public void run() { File workFile = null; while((workFile = queue.poll()) != null){ //work on the file. } } }; pool.execute(r); } }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)