long ls = System.currentTimeMillis();
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(30);
for (int i = 0; i < 2000; i++) {
final int index = i;
fixedThreadPool.execute(new Runnable() {
@Override
public void run() {
System.out.println("thread start" + (index+1));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread end" + (index+1));
}
});
}
fixedThreadPool.shutdown();
try {
// 设置等待所有子任务完成
fixedThreadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES);
System.out.println("时间"+(System.currentTimeMillis()-ls));
} catch (InterruptedException e) {
e.printStackTrace();
}newFixedThreadPool创建固定线程
最新推荐文章于 2022-10-02 12:42:54 发布
本文通过一个具体的Java示例展示了如何使用固定大小的线程池来执行大量任务,并且演示了如何等待所有任务完成后的线程池关闭流程。
1733

被折叠的 条评论
为什么被折叠?



