20210827
公平鎖
當(dāng)來了一個線程,他就到隊列中等待,線程按照在隊列中的順序去獲得鎖
優(yōu)點(diǎn):不會有某個線程一直得不到鎖
缺點(diǎn):假如排在前面的線程要占用很長時間的鎖,排在后面的線程就遲遲得不到鎖(銀行辦業(yè)務(wù),我辦業(yè)務(wù)只要5分鐘,我前面的人要搞1小時,造成我辦5分鐘業(yè)務(wù),卻要等1小時)
占著鎖和占著CPU是兩回事!一個線程sleep時他不占著CPU,但占著鎖
非公平鎖
當(dāng)來了一個線程,他直接去嘗試獲取鎖,發(fā)現(xiàn)鎖被其它線程占著,才去隊列中等待
助記
銀行辦業(yè)務(wù):
公平鎖是每個來辦業(yè)務(wù)的人都主動抽號排隊,就算因為下一個人行動遲緩,柜臺空著,也沒人搶著辦業(yè)務(wù);
非公平鎖就是每個來辦業(yè)務(wù)的人,一進(jìn)門就看柜臺是否空著,如果空著就搶下柜臺,如果不空才抽號排隊