java_thread java并发编程实践_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java_thread java并发编程实践

java_thread java并发编程实践

 2014/4/25 18:20:48  it_like  程序员俱乐部  我要评论(0)
  • 摘要:3.1.3加锁和可见性3.1.4volatile变量比synchronized更轻量级(中文翻译的根本看不懂,以下是自己翻译和理解)WhenthreadAwritestoavolatilevariableandsubsequentlythreadBreadsthatsamevariable
  • 标签:thread Java 编程 Java并发

?3.1.3 加锁和可见性

?3.1.4 volatile 变量? 比 synchronized 更轻量级

(中文翻译的根本看不懂,以下是自己翻译和理解)

? When thread A writes to a volatile variable and subsequently thread B reads that same variable, the values of all variables that were visible to A prior to writing to the volatile variable become visible to B after reading the volatile variable. So from a memory visibility perspective, writing a volatile variable is like exiting a synchronized block and reading a volatile variable is like entering a synchronized block.
-- ps: cpu 的读和写是原子操作的

? thread A对volatile 变量进行写入,随后thread B读取此变量的值,在A写入之前,所有值对A是可见的(即A直接访问的是(进程的)内存,不是自己线程的内存区域),在B读入之后,对B是可见的。所以什 么是内存可见性,写入一个volatile变量 类似 退出一个synchronized block,读入一个 volatile变量 类似 进入一个synchronized block .

退出一个synchronized block,即还没有释放锁,其它线程 读写不了,

进入一个synchronized block,即还没有获得所,线程读不了

?

总结:volatile 原理是使用了CPU读 写的原子性,并强制线程从进程内存中读取,而不是线程自己的内存。

?

?

?

?

?

?

?

?

?

?

?

发表评论
用户名: 匿名