多線程鎖的升級和無鎖、偏向鎖、輕量級鎖、重量級鎖

隨着競爭情況逐漸升級,鎖可以升級但不能降級。

鎖一共四種狀態,低-->高 無鎖狀態、偏向鎖狀態、輕量級鎖狀態、重量級鎖狀態

偏向鎖:

優點:加鎖和解鎖不需要額外的消耗,和執行非同步方法相逼僅存在納秒級的差距。

缺點:如果線程間存在鎖競爭,會帶來額外的鎖撤銷的消耗(適用只有一個線程訪問同步塊場景)

輕量級鎖:

優點:競爭的線程不會阻塞,提高了程序的響應速度

缺點:如果始終得不到鎖競爭的線程會自旋消耗CPU (追求響應時間,同步塊執行速度非常快)

重量級鎖:

優點:線程競爭不使用自旋,不會消耗CPU

缺點:線程阻塞,響應時間緩慢 (追求吞吐量,同步塊執行速度較長)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章