首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果ThreadPoolExecutor的submit()方法饱和,该如何使其阻塞?

如果ThreadPoolExecutor的submit()方法饱和,该如何使其阻塞?
EN

Stack Overflow用户
提问于 2010-01-05 01:59:37
回答 17查看 60.7K关注 0票数 109

我想创建一个ThreadPoolExecutor,这样当它达到最大大小并且队列已满时,submit()方法会在尝试添加新任务时阻塞。我是否需要为此实现一个自定义的RejectedExecutionHandler,或者是否有一种现有的方法可以使用标准的Java库来实现此目的?

EN

Stack Overflow用户

发布于 2016-09-02 18:39:09

我在elastic search client中发现了这个拒绝策略。它在阻塞队列上阻塞调用者线程。下面的代码-

代码语言:javascript
运行
复制
 static class ForceQueuePolicy implements XRejectedExecutionHandler 
 {
        public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) 
        {
            try 
            {
                executor.getQueue().put(r);
            } 
            catch (InterruptedException e) 
            {
                //should never happen since we never wait
                throw new EsRejectedExecutionException(e);
            }
        }

        @Override
        public long rejected() 
        {
            return 0;
        }
}
票数 0
EN
查看全部 17 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2001086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档