線程安全介紹

線程安全

多個(gè)線程同時(shí)共享同一個(gè)全局變量或靜態(tài)變量,對(duì)其做寫的操作,可能匯聚i發(fā)生數(shù)據(jù)沖突。讀操作是不會(huì)的。

所以可以使用synchornized解決同步問題,即我們所說的線程通信,但是效率是低的。

同步函數(shù)若使用synchornized是使用this鎖。原理其實(shí)就是把方法或函數(shù)前加synchornized,多線程引用時(shí)候需要搶到“鎖”,才有權(quán)對(duì)其進(jìn)行讀寫操作。這個(gè)鎖可以是一個(gè)object類型。

使用syn、lock都是屬于單個(gè)jvm中同步。

分布式鎖和高并發(fā)與jvm是沒有關(guān)系。

多線程死鎖

同步函數(shù)中簽到同步函數(shù),導(dǎo)致死鎖狀態(tài),原理:鎖 無法釋放,互相搶有對(duì)方的鎖

在多線程中需要注意原子性,可見性。

原子性解釋為:一個(gè)操作進(jìn)行到底

可見性解釋為:在線程池中,一個(gè)線程改變了一個(gè)全局變量的值,另一條線程應(yīng)立即更新信息

使用AtomicZnteger可以保證原子性又保證可見性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容