【发布时间】:2023-03-30 18:29:01
【问题描述】:
我的线程池大小为 3,如下所示,在构造函数中我使用同一个线程池来启动两个不同的线程:
- 一种是调用实现
Runnable接口的Poller类。 - 其他是每 1 秒启动一个线程运行一次。
下面是我的代码:
private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(3);
private Data() {
executorService.submit(new Poller());
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
for (Entry<Long, byte[]> entry : retryHolder.asMap().entrySet()) {
execute(entry.getKey(), entry.getValue());
}
}
}, 0, 1, TimeUnit.SECONDS);
}
我的问题是我需要大小为 3 的线程池还是我可以在这里只使用 2 个?因为我知道按照我上面的代码它只会使用两个线程,所以显然我可能会浪费另一个线程?
【问题讨论】:
-
是的。两个线程就足够了。
标签: java multithreading threadpool executorservice