在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Linux  網(wǎng)絡(luò)安全/ ThreadLocal和volatile的關(guān)系

ThreadLocal和volatile的關(guān)系

對(duì)于不加任何保護(hù)措施的多線程,其中一個(gè)線程中修改了某個(gè)數(shù)據(jù),什么時(shí)候提交給主內(nèi)存是不確定的,其他的線程使用的值不一定是最新的。
而在volatile修飾的情況下,會(huì)保證在修改后馬上提交給主內(nèi)存;
那么 ThreadLocal能否簡(jiǎn)單的理解為每個(gè)線程在工作內(nèi)存的變量永遠(yuǎn)不提交給主內(nèi)存

回答
編輯回答
萌吟

ThreadLocal是當(dāng)前線程可見(jiàn),不存在線程間通信的問(wèn)題。

而volatile可以在線程間共享變量的同時(shí)保證可見(jiàn)性,以便線程間可以成功合作。

兩個(gè)應(yīng)用場(chǎng)景差別還挺大的。。。

2017年5月31日 11:00
編輯回答
薄荷綠

完成沒(méi)關(guān)系的兩件事啊, 你也可以把volatile變量放到ThreadLocal里啊,只是ThreadLocal原則上僅供當(dāng)前線程使用,沒(méi)有必要這么做而已.
如果你有什么別的確定的需求,把代碼放上來(lái)看看...

2017年5月19日 05:51
編輯回答
夕顏

簡(jiǎn)單點(diǎn)說(shuō),volatile保證了線程總是看到最新的值,threadlocal是一個(gè)線程一份,兩個(gè)根本沒(méi)關(guān)系。

2018年4月17日 15:14