Netty的深入淺出--76.引用計數ReferenceCount和自旋鎖

引用計數

 當對象剛被創建的時候引用對象就是1,每次調用就+1,每調用一次release()方法就-1。當引用計數變爲0之後它就不能被訪問了。

 返回引用對象的值

引用數值+1

 

引用數值-1

 

 查看它的子類實現AbstractReferenceCountedByteBuf

 我們可以看到retain0()+1的具體實現

對於retain0(我們必須要考慮併發問題,保證其原子性 

 

 

很典型的CAS操作 ,相比較後設值;

這種方式也稱之爲自旋鎖。當賦值失敗時候繼續循環,直至賦值成功。

 

 也就是說自旋鎖自己佔用着cpu直到更新操作完成爲止。

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