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