synchronized含義:
1、synchronized中文意思是同步,也稱(chēng)之為”同步鎖“。
2、synchronized的作用是保證在同一時(shí)刻, 被修飾的代碼塊或方法只會(huì )有一個(gè)線(xiàn)程執行,以達到保證并發(fā)安全的效果。
3、synchronized是Java中解決并發(fā)問(wèn)題的一種最常用的方法,也是最簡(jiǎn)單的一種方法。
synchronized作用:
(1)、原子性:所謂原子性就是指一個(gè)操作或者多個(gè)操作,要么全部執行并且執行的過(guò)程不會(huì )被任何因素打斷,要么就都不執行。被synchronized修飾的類(lèi)或對象的所有操作都是原子的,因為在執行操作之前必須先獲得類(lèi)或對象的鎖,直到執行完才能釋放。
(2)、可見(jiàn)性:**可見(jiàn)性是指多個(gè)線(xiàn)程訪(fǎng)問(wèn)一個(gè)資源時(shí),該資源的狀態(tài)、值信息等對于其他線(xiàn)程都是可見(jiàn)的。 **synchronized和volatile都具有可見(jiàn)性,其中synchronized對一個(gè)類(lèi)或對象加鎖時(shí),一個(gè)線(xiàn)程如果要訪(fǎng)問(wèn)該類(lèi)或對象必須先獲得它的鎖,而這個(gè)鎖的狀態(tài)對于其他任何線(xiàn)程都是可見(jiàn)的,并且在釋放鎖之前會(huì )將對變量的修改刷新到共享內存當中,保證資源變量的可見(jiàn)性。
(3)、有序性:有序性值程序執行的順序按照代碼先后執行。synchronized和volatile都具有有序性,Java允許編譯器和處理器對指令進(jìn)行重排,但是指令重排并不會(huì )影響單線(xiàn)程的順序,它影響的是多線(xiàn)程并發(fā)執行的順序性。synchronized保證了每個(gè)時(shí)刻都只有一個(gè)線(xiàn)程訪(fǎng)問(wèn)同步代碼塊,也就確定了線(xiàn)程執行同步代碼塊是分先后順序的,保證了有序性。
標簽: 電腦同步鎖 計算機修飾代碼 線(xiàn)程執行