mac*_*ery 3 java multithreading executorservice threadpool
我正在使用固定大小的 Java 线程池(ExecutorService)。假设我向线程池提交了一个作业,并且该作业变得空闲。
是否有可能将空闲作业从线程池中删除,以便可以处理队列中的其他作业,然后再次添加空闲作业?
如果您从ThreadPoolExecutorExecutorService转移到ThreadPoolExecutor ,您可以使用以下 API 实现它
public void setCorePoolSize(int corePoolSize)
Run Code Online (Sandbox Code Playgroud)
设置核心线程数。这会覆盖构造函数中设置的任何值。如果新值小于当前值,多余的现有线程将在下次空闲时终止。
如果较大,则将在需要时启动新线程来执行任何排队的任务。
如果您想在运行时调整池的大小,
((ThreadPoolExecutor)service).setCorePoolSize(newLimit);//newLimit是池的新大小
其他API:
public void setMaximumPoolSize(int maximumPoolSize)
Run Code Online (Sandbox Code Playgroud)
设置允许的最大线程数。这会覆盖构造函数中设置的任何值。如果新值小于当前值,多余的现有线程将在下次空闲时终止。
| 归档时间: |
|
| 查看次数: |
5068 次 |
| 最近记录: |