我可能会想象一些需要花费很长时间的任务,而
ScheduledThreadPoolExecutor
会为需要运行的其他任务创建额外的线程,直到达到最大线程数为止。但是似乎我只能为线程池指定固定数量的线程,为什么?
我可能会想象一些需要花费很长时间的任务,而ScheduledThreadPoolExecutor
会为需要运行的其他任务创建额外的线程,直到达到最大线程数为止。
但是似乎我只能为线程池指定固定数量的线程,为什么?
ScheduledThreadPoolExecutor
设计的好原因。您可以将任意数量的作业放到队列中,但是从未同时执行多于可以高效运行的作业数量。当然,如何平衡取决于您自己。ScheduledThreadPoolExecutor
,一个用于IO密集型任务,另一个用于CPU密集型任务。