并发编程的三个特征

时间:2021-02-18 13:27:59   收藏:0   阅读:0

1.原子性(Atomicity)

  定义:不可再分割的操作

  Java内存模型直接保证原子性变量操作包括:read、load、assign、use、store 和 write 这6个

2.可见性(Visibility)

  定义:是指当一个线程修改了一个共享变量的值时,其他线程能够立即的指这个修改

  java内存模型是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值这种依赖主内存作为媒介的方式实现可见性,

  普通变量和volatile变量的区别:volatile的特殊规则保证了新值能立即同步到主内存

  java保证可见性的的关键字:synchronized final valotile。

  

3.有序性(Ordering)

如果本线程内观察,所有的操作都是有序的;如果一个线程中观察另外一个线程,所有的操作都是无序的。前半句是指“线程内似表现为串行的语义”(Wihtin-Thread As-If-Serila Semantics),后半句是指“指令重排序”现象和“工作内存与主内存同步延迟”现象

java通过sychronized和volatile两个关键字保证线程之间操作的有序性

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!