亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

共享變量和volatile變量區別

共享變量和volatile變量區別

正在回答

3 回答

共享變量是對于多線程而言的,多個線程訪問同一個變量,需要先把他從主內存拷貝到自己的工作內存中,讀寫的操作都是在工作內存與主內存之間進行的,工作內存與工作內存之間無法交互。
volatile是為了保證線程A對于共享變量的修改,對其他線程B線程C是立即可見的。對于這一點,volatile符合兩個規則:1.線程A在修改共享變量后將其同步到主內存中 2.線程BC在使用這個共享變量前,先從主內存刷新得到最新的值。所以很神奇,volatile變量在使用時總是能拿到最新的值。

0 回復 有任何疑惑可以回復我~

共享變量是在多線程操作的情況下,對某一個變量都有進行操作,該變量存儲在主存中,但是在多線程的工作內存中都有一個副本,所以該變量是共享的,即為共享變量。
volatile變量是被該關鍵字修飾的變量。在單線程中也可以用來修飾變量,但是沒有意義。用在多線程中,是為了保證被其修飾的變量對于多線程來說都是內存可見的。
在多線程中,volatile用來修飾共享變量,實現共享變量的可見性。

1 回復 有任何疑惑可以回復我~

我理解的是其實這個兩種類型的變量在主內存中是一樣的,只是在多線程的情況下,volatile修飾變量在線程操作前,會執行store和load方法,這樣把主內存中的變量同步到了工作內存中。我自己的理解,不知道對不對。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

共享變量和volatile變量區別

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號