为什么DefaultThreadFactory中有一个AtomicInteger
private static final AtomicInteger poolNumber = new AtomicInteger(1);仅仅因为它能增加和存储价值或者其他原因?
发布于 2016-10-12 09:02:15
因为它可以以原子方式递增。
递增AtomicInteger由三个操作组成:
这三个操作作为一个原子操作执行。
这意味着另一个线程将无法干预,例如在步骤1和2或步骤2和3之间,并且破坏计数。这种行为使得AtomicInteger在多线程环境中使用是安全的。
发布于 2016-10-12 09:09:59
该静态值在DefaultThreadFactory的构造函数中递增。用户可以在不同的线程中创建工厂实例,并且可能会丢失增量,因此AtomicInteger使这种方法线程安全。
https://stackoverflow.com/questions/39994526
复制相似问题