我写了一个名为T的线程类。
我的目的是确保一次只有一个线程对象运行。
因此,当调用线程对象时,它会检查一个名为 BUSY 的布尔标志。
我的问题是两者有什么不同
private static AtomicBoolean BUSY = new AtomicBoolean(false);
and
private static boolean BUSY = false;
我认为如果使用“静态”,所有对象只会检查一个 BUSY 布尔变量,以便确保只有一个线程对象正在运行。
您至少必须创建布尔变量volatile
和 AtomicBoolean 变量final
以获得可比较的解决方案。执行此操作后,您的用例将不会有任何差异。
如果你使用的话就会出现差异AtomicBoolean
's getAndSet
or compareAndSet
方法,它将一个读取和一个写入操作组合成一个原子整体,而当针对一个volatile
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)