java – 在关闭Executors之前等待所有线程完成
发布时间:2020-12-15 02:00:26 所属栏目:Java 来源:网络整理
导读:这是我的代码片段. ExecutorService executor = Executors.newFixedThreadPool(ThreadPoolSize);while(conditionTrue){ClassImplementingRunnable c = new ClassImplementingRunnable();executor.submit(c);} 现在这样做了 executor.shutdown(); 我想在这里
这是我的代码片段.
ExecutorService executor = Executors.newFixedThreadPool(ThreadPoolSize); while(conditionTrue) { ClassImplementingRunnable c = new ClassImplementingRunnable(); executor.submit(c); } 现在这样做了 executor.shutdown(); 我想在这里实现的是,我想等待线程池中的所有线程完成执行,然后我想关闭执行程序. 但我想这不是这里发生的事情.主线程似乎正在执行关闭,它只是关闭所有东西. 在我的线程池大小为2之前,我做了以下操作,它似乎工作. ClassImplementingRunnable c1 = new ClassImplementingRunnable(); executor.submit(c1); ClassImplementingRunnable c2 = new ClassImplementingRunnable(); executor.submit(c2); Future f1 = executor.submit(c1); Future f2 = executor.submit(c2); while(!f1.done || !f2.done) {} executor.submit(); 我如何为线程池中的更多线程执行此操作? 解决方法
您通常使用以下习语:
executor.shutdown(); executor.awaitTermination(Integer.MAX_VALUE,TimeUnit.SECONDS); > (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |