您好,登錄后才能下訂單哦!
本篇文章為大家展示了Java中內(nèi)存交互的規(guī)則有哪些,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
Java是一門面向?qū)ο缶幊陶Z言,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。
1、不允許read和load、store和write操作之一單獨(dú)出現(xiàn)。即不允許一個(gè)變量從主內(nèi)存讀取了但工作內(nèi)存不接受。或者從工作內(nèi)存發(fā)起回寫了但主內(nèi)存不接受的情況
2、不允許一個(gè)線程丟棄它的最近的assign操作。即變量在工作內(nèi)存改變了后必須把該變化同步到主內(nèi)存中。
3、不允許沒有發(fā)生任何的assign操作就把數(shù)據(jù)同步到主內(nèi)存中。
4、一個(gè)新的變量只能在主內(nèi)存中誕生,工作內(nèi)存要使用或者賦值。必須要經(jīng)過load或assign操作。
5、一個(gè)變量在同一時(shí)刻只允許一條線程進(jìn)行l(wèi)ock操作,但lock操作可以被同一線程重復(fù)執(zhí)行多次,多次執(zhí)行l(wèi)ock后,只有執(zhí)行相同次數(shù)的unlock操作,變量才會(huì)被解鎖。
6、如果對一個(gè)變量進(jìn)行l(wèi)ock操作后,那將會(huì)清空工作內(nèi)存中此變量的值,在執(zhí)行引擎使用這個(gè)變量前,需要重新執(zhí)行l(wèi)oad或assign操作。
7、如果一個(gè)變量事先沒有被lock操作鎖定,那就不允許對它進(jìn)行unlock操作。也不允許去unlock一個(gè)被其他線程鎖定的變量。
8、對一個(gè)變量執(zhí)行unLock操作之前,必須要把次變量同步到主內(nèi)存中(執(zhí)行store,write操作)。
上述內(nèi)容就是Java中內(nèi)存交互的規(guī)則有哪些,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。