Java知識進階-程序員必須鍛鍊本身,手寫自旋鎖-知識鋪

1、自旋原理markdown

簡單講:線程嘗試獲取鎖的過程不會阻塞,而是採用循環的方式不斷獲取鎖。ide

優勢:減小內核態和用戶態切換的消耗測試

缺點:不停自旋消耗CPU線程

2、動手實現簡單自旋鎖對象

2.1利用AtomicReference實現 www.121mu.com/gszlyfxgl/源碼

AtomicReference原子性,底層實現CAS操做,能夠對比普通對象的引用。it

源碼簡析:class

從源碼中能夠看出,AtomicReference這原子操做底層使用的是unsafe.compareAndSwapObject來完成,也就支持普通對象的CAS操做。原理

AtomicInteger這個也是原子操做,底層進行CAS比較的是整數,沒有AtomicReference這個更實用。循環

2.2手寫簡單自旋鎖源碼

2.3簡單進行測試

相關文章
相關標籤/搜索