由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Volatile variables do not provide any atomicity (转载)
相关主题
有人知道AtomicInteger是如何实现的么关于signal handler
请教register关于线程读写全局变量的问题
用volatile退出线程对不对?(C++)问达人一个shared memory 的问题
question about volatile variable on multiple coresBihai,你就用atmoic完事了
java的同步问题请教Question on synchronization between processes
C++怎么保证2行代码atomic科普贴,fusion IO
Help on a multithread question哈,居然写完了作业
condional variable thread sync 问题 (转载)java里用synchronized包住block就可以保护多线程同步问题了,这就是c里面的mutex吧?
相关话题的讨论汇总
话题: volatile话题: atomicity话题: done话题: variables话题: provide
进入Programming版参与讨论
1 (共1页)
i**p
发帖数: 902
1
【 以下文字转载自 Java 讨论区 】
发信人: isup (No), 信区: Java
标 题: Volatile variables do not provide any atomicity
发信站: BBS 未名空间站 (Sun Mar 8 14:38:43 2015, 美东)
This is from book "Core Java"
Volatile variables (private volatile boolean done;) do not provide any
atomicity. For example, the method
public void flipDone() { done = !done; } // not atomic
is not guaranteed to flip the value of the field.
What does "atomicity mean in this context? atomic for "=", for "!" or for
reading "done"?
l******t
发帖数: 55733
2
你放狗查查happen-before原则
z****e
发帖数: 54598
3
不是早就有公论了么?
如果你不是很清楚地知道怎么实现一个jvm
那么该用synchronized时候就用synchronized
当然最理想的还是用vert.x这些
不要自己去搞automic这些
自己搞这些是很危险的,出了bugs连找都找不到
h*********8
发帖数: 404
4
use atomic package..already in jdk..
H****S
发帖数: 1359
5
你这个问题本身make sense吗?即便用AtomicBoolean,你觉得下面的程序一定可以
flip the value?
val b = new AtomicBoolean()
b.set(!b.get())

【在 i**p 的大作中提到】
: 【 以下文字转载自 Java 讨论区 】
: 发信人: isup (No), 信区: Java
: 标 题: Volatile variables do not provide any atomicity
: 发信站: BBS 未名空间站 (Sun Mar 8 14:38:43 2015, 美东)
: This is from book "Core Java"
: Volatile variables (private volatile boolean done;) do not provide any
: atomicity. For example, the method
: public void flipDone() { done = !done; } // not atomic
: is not guaranteed to flip the value of the field.
: What does "atomicity mean in this context? atomic for "=", for "!" or for

g*****g
发帖数: 34805
6
try
boolean v = b.get();
b.compareAndSet(v, !v);
The value is guaranteed to be !v right after last statement.

【在 H****S 的大作中提到】
: 你这个问题本身make sense吗?即便用AtomicBoolean,你觉得下面的程序一定可以
: flip the value?
: val b = new AtomicBoolean()
: b.set(!b.get())

m****o
发帖数: 182
7
volatile关键没有CAS,但是每次更新的结果都会直接被flush到main memory,所以多
线程赋值不需要synchronize。很多时候其实用volatile就够了。
[在 goodbug (好虫) 的大作中提到:]
:try

:...........
1 (共1页)
进入Programming版参与讨论
相关主题
java里用synchronized包住block就可以保护多线程同步问题了,这就是c里面的mutex吧?java的同步问题请教
What's a transaction.C++怎么保证2行代码atomic
thread, semaphore, 问题。Help on a multithread question
Restaurant Reservation System...condional variable thread sync 问题 (转载)
有人知道AtomicInteger是如何实现的么关于signal handler
请教register关于线程读写全局变量的问题
用volatile退出线程对不对?(C++)问达人一个shared memory 的问题
question about volatile variable on multiple coresBihai,你就用atmoic完事了
相关话题的讨论汇总
话题: volatile话题: atomicity话题: done话题: variables话题: provide