摘要:它們以一種指令屏障的方式來控制順序。不過這樣的方式能保證讀的一瞬間確保線程讀取到最新的數(shù)據(jù),因此要進(jìn)一步做到讀取修改寫入動(dòng)作是一致的,就將其升級為原子性。
JMM中一些普通變量的操作指令
A、Load操作發(fā)生在read之后(兩個(gè)之間可以有其他的指令)
B、普通變量的修改未必會(huì)立即發(fā)生Store操作,但發(fā)生Store操作,就會(huì)發(fā)生write操作
最細(xì)的粒度支持,也就是對Load、Store的各種順序控制,load、store兩兩組合為4中情況,LoadLoad、StoreStore、LoadStore、StoreLoad。它們以一種指令屏障的方式來控制順序。有些系統(tǒng)可能不支持某些指令的順序化,不過,絕大多數(shù)系統(tǒng)都支持StoreLoad指令。
StoreLoad的意思可以簡單理解為Store優(yōu)先于Load發(fā)生。例如兩個(gè)在某個(gè)瞬間同時(shí)修改和讀取主存中的一個(gè)共享變量,此時(shí)的讀取操作將發(fā)生在修改之后。有了這樣一個(gè)特征,就實(shí)現(xiàn)了最細(xì)粒度的鎖,也是最輕量級的鎖。
不過這樣的方式能保證讀的一瞬間確保線程讀取到最新的數(shù)據(jù),因此要進(jìn)一步做到讀取、修改、寫入動(dòng)作是一致的,就將其升級為原子性。要達(dá)到原子性的效果,可以通過可見性、CAS自旋來完成,也可以通過synchronized來完成。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65774.html
摘要:文章簡介分析的作用以及底層實(shí)現(xiàn)原理,這也是大公司喜歡問的問題內(nèi)容導(dǎo)航的作用什么是可見性源碼分析的作用在多線程中,和都起到非常重要的作用,是通過加鎖來實(shí)現(xiàn)線程的安全性。而的主要作用是在多處理器開發(fā)中保證共享變量對于多線程的可見性。 文章簡介 分析volatile的作用以及底層實(shí)現(xiàn)原理,這也是大公司喜歡問的問題 內(nèi)容導(dǎo)航 volatile的作用 什么是可見性 volatile源碼分析 ...
摘要:內(nèi)存模型對內(nèi)存模型的介紹對內(nèi)存模型的結(jié)構(gòu)圖的線程之間的通信是通過共享內(nèi)存的方式進(jìn)行隱式通信,即線程把某狀態(tài)寫入主內(nèi)存中的共享變量,線程讀取的值,這樣就完成了通信。 Java內(nèi)存模型(JMM) 1.對內(nèi)存模型的介紹 ①對Java內(nèi)存模型的結(jié)構(gòu)圖 java的線程之間的通信是通過共享內(nèi)存的方式進(jìn)行隱式通信,即線程A把某狀態(tài)寫入主內(nèi)存中的共享變量X,線程B讀取X的值,這樣就完成了通信。是一種...
摘要:并發(fā)編程的挑戰(zhàn)并發(fā)編程的目的是為了讓程序運(yùn)行的更快,但是,并不是啟動(dòng)更多的線程就能讓程序最大限度的并發(fā)執(zhí)行。的實(shí)現(xiàn)原理與應(yīng)用在多線程并發(fā)編程中一直是元老級角色,很多人都會(huì)稱呼它為重量級鎖。 并發(fā)編程的挑戰(zhàn) 并發(fā)編程的目的是為了讓程序運(yùn)行的更快,但是,并不是啟動(dòng)更多的線程就能讓程序最大限度的并發(fā)執(zhí)行。如果希望通過多線程執(zhí)行任務(wù)讓程序運(yùn)行的更快,會(huì)面臨非常多的挑戰(zhàn):(1)上下文切換(2)死...
摘要:編譯器,和處理器會(huì)共同確保單線程程序的執(zhí)行結(jié)果與該程序在順序一致性模型中的執(zhí)行結(jié)果相同。正確同步的多線程程序的執(zhí)行將具有順序一致性程序的執(zhí)行結(jié)果與該程序在順序一致性內(nèi)存模型中的執(zhí)行結(jié)果相同。 前情提要 深入理解Java內(nèi)存模型(六)——final 處理器內(nèi)存模型 順序一致性內(nèi)存模型是一個(gè)理論參考模型,JMM和處理器內(nèi)存模型在設(shè)計(jì)時(shí)通常會(huì)把順序一致性內(nèi)存模型作為參照。JMM和處理器內(nèi)...
閱讀 1363·2021-09-28 09:43
閱讀 4163·2021-09-04 16:41
閱讀 1928·2019-08-30 15:44
閱讀 3752·2019-08-30 15:43
閱讀 787·2019-08-30 14:21
閱讀 2044·2019-08-30 11:00
閱讀 3330·2019-08-29 16:20
閱讀 1933·2019-08-29 14:21