我有一个固定的线程池,可以随时运行 7 个并发线程(带有一个队列),我想把它变成一个调度线程池,它只运行 7 个并发作业,但可以排队/调度更多。
阅读文档并没有真正帮助我..
公共静态 ExecutorService newFixedThreadPool(int nThreads)
创建一个线程池,该线程池重用一组固定的线程,这些线程在共享无界队列中运行。如果任何线程在关闭之前的执行过程中由于失败而终止,如果需要执行后续任务,新的线程将取代它。
参数:nThreads - 池中的线程数返回:新创建的线程池
公共静态 ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。
参数: corePoolSize - 保留在池中的线程数,即使它们是空闲的。返回:一个新创建的调度线程池
我不明白的是, corePoolSize 和 nThreads 是一回事吗?调度线程池真的是固定线程池的子集吗,也就是说我可以将调度线程池用作可以对延迟任务进行排队的固定线程池?