Java:锁定线程时,AtomicBoolean 和静态布尔变量有什么不同?

2024-03-07

我写了一个名为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(使用前将#替换为@)

Java:锁定线程时,AtomicBoolean 和静态布尔变量有什么不同? 的相关文章

随机推荐