线程池执行器阻塞队列已满?
2022-08-31 13:31:03
我正在尝试使用ThreadPoolExecutor执行许多任务。下面是一个假设的例子:
def workQueue = new ArrayBlockingQueue<Runnable>(3, false)
def threadPoolExecutor = new ThreadPoolExecutor(3, 3, 1L, TimeUnit.HOURS, workQueue)
for(int i = 0; i < 100000; i++)
threadPoolExecutor.execute(runnable)
问题是我很快就得到了,因为任务的数量超过了工作队列的大小。但是,我正在寻找的所需行为是拥有主线程块,直到队列中有空间。实现此目的的最佳方法是什么?java.util.concurrent.RejectedExecutionException