synchronized相比reentrantLock性能不好原因分析:
synchronized為重量級(jí)鎖時(shí):
猜測(cè)1 syn鎖的獲取和釋放需要操作系統(tǒng)的互斥量(mutex)實(shí)現(xiàn)确丢,均需要用戶態(tài)和內(nèi)核態(tài)的切換秸谢;lock是CAS獲取和釋放的鎖,無(wú)需切換
猜測(cè)2 syn和lock底層都有等待的線程集合狠轻,都是阻塞。syn的阻塞是系統(tǒng)來(lái)處理的,需用戶態(tài)和內(nèi)核態(tài)的準(zhǔn)換不同;lock的阻塞是執(zhí)行jdk中的代碼來(lái)阻塞的,應(yīng)該是一直是在用戶態(tài)的
同意溶耘?
synchronized和lock自旋鎖 線程被阻塞后便進(jìn)入內(nèi)核Linux調(diào)度狀態(tài)二拐,這個(gè)會(huì)導(dǎo)致系統(tǒng)在用戶態(tài)和內(nèi)核態(tài)來(lái)回切換,嚴(yán)重影響鎖的性能 緩解上述問題的辦法便是自旋凳兵,其原理是:當(dāng)發(fā)生爭(zhēng)用時(shí)百新,若Owner線...