具有多个写线程的易失性变量的线程安全性

时间:2019-04-18 13:14:09

标签: java multithreading

我曾经讨论过volatile是否为原始整数变量保证线程安全。我在网上做了一些广泛的搜索,但是发现了一些矛盾的解决方案。有人可以帮我吗?

假设我们有

private volatile int number;

如果有多个线程正在写入并且从中读取了多个线程(读和写线程是不同的线程)。代码会是线程安全的吗?

  • 我的一位同事说:如果将一个以上的线程写入volatile变量,则尽管编写方式不同,但这也不是线程安全的。
  • 我的在线搜索建议:如果写入线程仅写入整数值而未读取前一个值,即未执行类似number++的操作。那么这样做是安全的。

有人可以让我知道哪个是正确的吗?如果我的同事的建议是正确的,为什么?

0 个答案:

没有答案