java 併發編程(一)之synchronized


對“共享資源”的訪問爲了保證正確性,引入了“臨界區”的概念(critical section)

對於“臨界區”的訪問java通常使用synchronized和鎖進行。

對於“臨界區”的訪問策略是,當線程A要訪問“臨界區”時會先進行判斷,如果該“臨界區”中有其他的線程存在,那麼線程A將休眠等待獲得訪問許可。

java中,被synchronized修飾的對象將是線程安全的,換句話說:

java類中被synchronized修飾的方法都是該對象的“臨界區”,在同一時刻只能有一個線程訪問。需要注意的是:

獲得鎖的線程可以迭代調用其他加鎖的的方法

靜態方法是特殊的,即沒有獲得鎖的線程也可以訪問已經被佔用的對象的靜態方法,這需要注意

發佈了75 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章