【发布时间】:2019-11-08 21:06:32
【问题描述】:
我当前的实现计算有多少任务添加到池中,并在完成任务时减少。
然后我告诉主代码重复 + 睡眠,直到活动任务降到线程池大小以下,然后再添加另一个任务。
我觉得一定有更好的方法?
我不希望将任务放在队列中,但我很乐意等待池告诉我它已准备好接收更多任务。
作为背景,我有一个希望调用的 Web 服务,它涉及大约 150,000 个 HTTP 调用,我计划一次执行 50 个,直到完成全部 150,000 个调用,这就是为什么我不能排队所有任务,因为我将耗尽我的内存。
我不希望任何阻塞超时 - 只要线程池有空间用于新任务,我很乐意等待。
关于如何实现这一点有什么建议吗?
【问题讨论】:
标签: java multithreading threadpool executorservice blockingqueue