【发布时间】:2017-07-05 11:01:21
【问题描述】:
下面的代码在循环中创建了大量的可运行对象,甚至只有 5 个线程来处理任务。有什么办法可以让内存中随时只有 5 个可运行对象而不是任务总数(100000)。
ExecutorService executor = Executors.newFixedThreadPool(5);
for (int i = 0; i < 10000; i++) {
Runnable worker = new WorkerThread("" + i);
System.out.println("ExecutorExample.main()");
executor.execute(worker);
}
【问题讨论】:
-
创建 5,提交,等待完成,然后再次创建 5,等等,直到你有 10000 ??
-
创建一个
ExecutorServce来管理其他五个服务并分配新的作业,这样您的主线程就不会挂起。
标签: java concurrency java.util.concurrent