java - 如何控制ThreadPoolTask​​Executor中正在运行的线程数量?

标签 java multithreading

我使用 org.springframework.scheduling.concurrent.ThreadPoolTask​​Executor 来执行我的应用程序任务。我想限制并行运行任务(线程)的数量,直到所有(或运行任务的一定百分比)线程完成后才执行新线程。

我如何控制,或者如何获取信息,ThreadPoolExecutor实际运行了多少个线程来控制执行新任务?有什么方法可以通过 ThreadPoolExecutor 解决这个问题,还是我需要以我的方式注册新线程启动并在线程完成时取消注册...?

最佳答案

您可以使用getActiveCount()获取当前线程数和 setCorePoolSize()设置核心池大小。您应该在 ThreadPoolTask​​Executor 配置中设置池大小。不过,我不认为等到所有线程完成后再启动新线程才是使用线程池的方式。

关于java - 如何控制ThreadPoolTask​​Executor中正在运行的线程数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101118/

相关文章:

java - TextView 未放置在屏幕的一半下方

java - 一年中一周的即时时间

c# - 如何确保 Task.Delay 更准确?

后台 worker 中的 C# ProgressBar 数据绑定(bind)

python - Apache 和 Python 线程处理奇怪的结果

Javafx 实时线程更新

java - toString 中的平均成绩

java - jedis llen 结果不等于 redis llen

Java无法识别已定义的变量?

c - 关于套接字/tcp 连接的多线程的问题