是java虛擬機提供的輕量級的同步機制(乞丐版的synchronized)

具備三個性質:保證可見性,不保證原子性,禁止指令重排
前置知識:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??java內存模型 (Java Memory Model) JMM_Pr Young的博客-博客? ? ? ? ? ? ? ? ? ??

JMM這組規(guī)范關于同步的規(guī)定:
1.線程解鎖前,必須把共享變量的值刷新回主內存
2.線程加鎖前,必須讀取主內存的最新值到自己的工作內存
3.加鎖和解鎖是同一把鎖
1.保證可見性:當一個線程修改了某個共享變量的值時,其他線程是否能夠立即知道這個修改。
volatile int number=0;這樣就可以保證,一個線程更改了共享變量number的值,其他線程也能立即知道這個修改? ? ? ? ? ?
2.不保證原子性:
原子性:某個線程正在做某個具體業(yè)務的時候,不見不可以被打擾? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
volatile int number=0;同樣用volatile修飾共享變量,然后用20個線程都對這個共享變量進行加一操作,理論上講,最后number的值應該是20,但實際上最后答案并不是20,這說明valatile不保證原子性
3.禁止指令重排
指令重排是指在程序執(zhí)行過程中, 為了性能考慮, 編譯器和CPU可能會對指令重新排序
在單線程環(huán)境中, 程序是按序依次執(zhí)行的
在多線程環(huán)境中, 程序的執(zhí)行可能因為指令重排而出現亂序
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁題目:volatile-創(chuàng)新互聯
文章來源:http://chinadenli.net/article22/dijgjc.html
成都網站建設公司_創(chuàng)新互聯,為您提供商城網站、營銷型網站建設、網站營銷、用戶體驗、移動網站建設、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯