1. 程式人生 > >Java嚴選

Java嚴選

性能 lock 輕量 兩個 tran ant 思想 tro 如何

1,假如有兩個線程,一個線程A,一個線程B都會訪問一個加鎖方法,可能存在並發情況,但是線程B訪問頻繁,線程A訪問次數很少,問如何優化。(然後面試官說有了解過重度鎖和輕度鎖嗎)

a,競爭資源不激烈,選擇Synchronized:

在資源競爭不是很激烈的情況下,Synchronized的性能要優於ReetrantLock,

但是在資源競爭很激烈的情況下,Synchronized的性能會下降幾十倍,但是ReetrantLock的性能能維持常態

b,優化,假設線程A和B不會並發訪問,如果發生了並發,再膨脹為重量級鎖:

輕量級鎖的核心思想就是“被加鎖的代碼不會發生並發,如果發生並發,那就膨脹成重量級鎖

Java嚴選