首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AtomicInteger in threadDefaultFactory

AtomicInteger in threadDefaultFactory
EN

Stack Overflow用户
提问于 2016-10-12 08:59:50
回答 2查看 38关注 0票数 0

为什么DefaultThreadFactory中有一个AtomicInteger

代码语言:javascript
运行
复制
private static final AtomicInteger poolNumber = new AtomicInteger(1);

仅仅因为它能增加和存储价值或者其他原因?

EN

回答 2

Stack Overflow用户

发布于 2016-10-12 09:02:15

因为它可以以原子方式递增。

递增AtomicInteger由三个操作组成:

  1. 读出当前值
  2. 递增该值
  3. 存储增量值

这三个操作作为一个原子操作执行。

这意味着另一个线程将无法干预,例如在步骤1和2或步骤2和3之间,并且破坏计数。这种行为使得AtomicInteger在多线程环境中使用是安全的。

票数 1
EN

Stack Overflow用户

发布于 2016-10-12 09:09:59

该静态值在DefaultThreadFactory的构造函数中递增。用户可以在不同的线程中创建工厂实例,并且可能会丢失增量,因此AtomicInteger使这种方法线程安全。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39994526

复制
相关文章

相似问题

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