java-指定要添加到ExecutorService的可运行对象的限制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-指定要添加到ExecutorService的可运行对象的限制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含874字,纯文字阅读大概需要2分钟。
内容图文
![java-指定要添加到ExecutorService的可运行对象的限制](/upload/InfoBanner/zyjiaocheng/659/6ded89268ffc4823ad8ab386f39198cc.jpg)
我知道我可以使用以下方式指定固定线程池大小
ExecutorService executor = Executors.newFixedThreadPool(10);
我可以将可运行对象添加到执行程序中,并且只要线程在池中空闲,它们就会执行
executor.execute(Obj);
我想限制要添加到执行程序服务的对象数,即如果我有100个可运行对象,则线程池大小为10,并且只有20个必须添加到ExecutorService中,其余部分必须被拒绝.
我想为执行程序创建一个固定大小的等待列表,以便与其添加所有100个对象并使它们保持等待状态,不如将所有项目保持固定的等待状态
我通过了Executor和ExecutorService API,但是找不到任何这样的东西,只是想知道这是否可行?
解决方法:
查看ThreadPoolExecutor的构造函数.您可以为执行者提供一个有界队列和拒绝策略.拒绝策略告诉执行者,当您尝试提交超出其处理能力的任务时该怎么做.
例:
ExecutorService executor =
new ThreadPoolExecutor(N_THREADS, N_THREADS, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(CAPACITY),
new ThreadPoolExecutor.CallerRunsPolicy());
内容总结
以上是互联网集市为您收集整理的java-指定要添加到ExecutorService的可运行对象的限制全部内容,希望文章能够帮你解决java-指定要添加到ExecutorService的可运行对象的限制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。