Synchornize的底層原理

2021-10-02 08:12:27 字數 380 閱讀 2865

synchronized(myobject)

monitorenter

// 邏輯**對應的指令

monitorexit

每個物件都有乙個關聯的monitor,比如乙個物件例項就有乙個monitor,乙個類的class物件也有乙個monitor,如果要對這個物件加鎖,那麼必須獲取這個物件關聯的monitor的lock鎖

他裡面的原理和思路大概是這樣的,monitor裡面有乙個計數器,從0開始的。如果乙個執行緒要獲取monitor的鎖,就看看他的計數器是不是0,如果是0的話,那麼說明沒人獲取鎖,他就可以獲取鎖了,然後對計數器加1

ConcurrentHashMap底層原理

出自jdk5新引進的concurrent包,concurrenthashmap主要解決了兩個問題 相較於只使用synchronized的hashtable提高了效能,根據具體場景進行不同的設計,盡量避免了重量級鎖。不同於hashmap,採用了fail safe弱一致性迭代器,再迭代器使用過程中,可以...

徹底了解instanceof的底層實現原理

一 作用 用於判斷某個例項是否屬於某建構函式 在繼承關係中用來判斷乙個例項是否屬於它的父型別或者祖先型別的例項 說白了,只要右邊變數的 prototype 在左邊變數的原型鏈上即可。因此,instanceof 在查詢的過程中會遍歷左邊變數的原型鏈,直到找到右邊變數的 prototype,如果查詢失敗...

徹底了解instanceof的底層實現原理

今天看了instanceof底層實現原理,這篇文章解析的很簡單易懂。一 作用 用於判斷某個例項是否屬於某建構函式 在繼承關係中用來判斷乙個例項是否屬於它的父型別或者祖先型別的例項 說白了,只要右邊變數的 prototype 在左邊變數的原型鏈上即可。因此,instanceof 在查詢的過程中會遍歷左...