【发布时间】:2021-07-14 06:47:19
【问题描述】:
考虑以下代码:
class Test {
public static void main(String... args) {
var t = new Test();
while(true) {
t.work();
}
}
public void work() {
ExecutorService executorService = Executors.newFixedThreadPool(10);
try {
/* Do work */
}
finally {
executorService.shutdown();
}
}
}
在应用程序的生命周期内(不是同时)可以有多少个线程池。
我尝试查看源代码并运行此测试一段时间,但似乎没有限制。一旦线程池计数器溢出会发生什么?
【问题讨论】:
-
没有明确的限制。
-
但是请注意,启动/停止线程需要一些时间,因此为所有工作操作使用同一个线程池可能比为每个操作创建一个新线程池更快。跨度>
标签: java multithreading concurrency threadpool