多线程世界中的原子操作

26 浏览
0 Comments

多线程世界中的原子操作

原子操作在多线程应用中使用是否足够安全,不会引发竞态条件和其他并发问题?假设我们不担心可见性问题(我们从CPU读取/写入所有内容)。

0
0 Comments

随着多线程应用的普及,一个问题变得越来越重要:在多线程环境中,原子操作是否足够安全,能否避免竞态条件和其他并发问题的发生?

Java提供了严格定义的内存模型(也称为JSR 133)。在java.util.concurrent包中,还提供了原子包装器来处理基本类型,例如AtomicInteger。

原子性是通过使用比较并交换(compare-and-swap)实现的。这种操作在Java中并不特定,而是与原子性的定义有关。因此,内存模型是无关紧要的,因为OP明确表示“我们不担心可见性”。

由于OP明确标记了Java标签,所以他可能在进行Java项目相关的工作。以上是解决该问题的可能方法。

0