首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >并发ThreadPoolExecutor.submit()调用

并发ThreadPoolExecutor.submit()调用
EN

Stack Overflow用户
提问于 2022-08-21 11:42:43
回答 1查看 55关注 0票数 1

我有一个ThreadPoolExecutor,它的submit方法可以由多个线程并发调用。我想知道ThreadPoolExecutor将如何处理这个问题。我不认为submit从源代码中是原子的,尽管我可能遗漏了一些东西。事先谢谢您的建议。

EN

Stack Overflow用户

发布于 2022-08-21 13:23:34

在submit()时,ExecutorService依赖于它的BlockingQueue进行同步。

初始化执行器时,必须提供一个队列实例,用于存储所有子任务,并用作线程池读取的源。

对于从Executors固定大小工厂方法之一初始化的执行器,内部使用LinkedBlockingQueue

当提供要存储的新条目时,LinkedBlockingQueue内部使用ReentrantLock来锁定和同步

只要您使用用于队列的java.util.concurrent实现,并发提交就可以正常工作。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73434093

复制
相关文章

相似问题

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