1. 原子性的操作:read氛悬,load错英,assign,use放妈,shore,write 2. 可見性的操作:volatile,synchroniz...
時間先后順序于先行發(fā)生沒有絕對關(guān)系钠导,一切以先行發(fā)生原則為主。 1. 程序次序原則森瘪。同一個線程內(nèi)牡属,按照程序代碼順序先后執(zhí)行。 2. 管道鎖定規(guī)則扼睬。...
1. 不可變逮栅。final。如果是對象窗宇,所有屬性為final即可措伐。 2. 絕對線程安全。 3. 相對線程安全军俊。對象單獨操作都是線程安全的侥加,對于一些...
1. 互斥同步。保證在某一時刻共享數(shù)據(jù)只被一個線程使用粪躬。 synchronize為什么消耗大呢官硝?synchronize在方法完成之前,會阻塞...
1. 自旋鎖與自適應自旋短蜕。共享數(shù)據(jù)的鎖定只會持續(xù)短時間氢架,通過自旋看看持有鎖的線程是否會很快釋放。1.6之后加入自適應自旋朋魔,根據(jù)前一次在同一個鎖上...
SDS:simple dynamic String 優(yōu)勢: 1.提升效率岖研,C語言的字符串如果需要知道字符串的長度,需要遍歷,復雜度是O(n)...
每個字典的底層采用哈希表實現(xiàn)害淤,每個字典帶有兩個哈希表,一個平常使用拓售,一個僅在rehash時使用窥摄。redis使用murmurHash2算法來計算h...
Redis 并沒有直接使用數(shù)據(jù)結(jié)構(gòu)來構(gòu)建鍵值對,而是基于這些數(shù)據(jù)結(jié)構(gòu)創(chuàng)建了一個對象系統(tǒng)础淤。 該對象保存與數(shù)據(jù)有關(guān)的三個屬性分別是:type(類型)...
哈希對象的編碼可以是ziplist或hashtable 1. ziplist編碼的哈希對象使用壓縮列表作為底層實現(xiàn)崭放,每當新的鍵值對加入哈希對象時...