原子性
原子性(Atomicity)是指:在一次或者多次操作时,要么所有操作都被执行,要么所有操作都不执行。
在Java内存模型中,只保证了基本读取和赋值的原子性操作。如果想保证多个操作的原子性,需要使用synchronized
关键字或者Lock
相关的工具类。如果想要使int、long等类型的自增操作具有原子性,可以用java.util.concurrent.atomic包下的工具类,如:AtomicInteger
、AtomicLong
等。另外需要注意的是,volatile
关键字不具有保证原子性的语义。
可见性
可见性(Visibility)是指:当一个线程对共享变量进行修改后,另外一个线程可以立即看到该变量修改后的最新值。
可以使用volatile
、synchronized
关键字和Lock
相关的工具类保证可见性。
有序性
有序性(Ordering)是指:程序执行的顺序按照代码的先后顺序执行。
除了Happens-Before原则提供的天然有序性,我们还可以使用volatile
、synchronized
关键字和Lock
相关的工具类保证有序性。
参考答案
原子性、可见性、有序性
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦