加入笨神(公眾號:你假笨)帶頭創(chuàng)建的JVMPocket群已經(jīng)有一段時間了,有幸得到笨神指導(dǎo)一二验毡,學(xué)到了不少東西衡创,也糾正了自己對JVM一些誤解,還能給群里一些朋友提出的問題給出...
什么時候傾向于選擇redis?業(yè)務(wù)需求決定技術(shù)選型喉脖,當(dāng)業(yè)務(wù)有這樣一些特點的時候椰苟,選擇redis會更加適合。 復(fù)雜數(shù)據(jù)結(jié)構(gòu)value是哈希树叽,列表舆蝴,集合,有序集合這類復(fù)雜的數(shù)據(jù)結(jié)...
Cache Aside Pattern(旁路緩存模式)對于讀請求先讀cache,再讀db如果洁仗,cache hit层皱,則直接返回數(shù)據(jù)如果,cache miss京痢,則訪問db奶甘,并將數(shù)...
問:KV緩存都緩存了一些什么數(shù)據(jù)?答:(1)樸素類型的數(shù)據(jù)祭椰,例如:int(2)序列化后的對象臭家,例如:User實體,本質(zhì)是binary(3)文本數(shù)據(jù)方淤,例如:json或者h(yuǎn)tml...
容錯設(shè)計又叫彈力設(shè)計钉赁,其中著眼于分布式系統(tǒng)的各種“容忍”能力,包括容錯能力(服務(wù) 隔離携茂、異步調(diào)用你踩、請求冪等性)、可伸縮性(有 / 無狀態(tài)的服務(wù))讳苦、一致性(補償事務(wù)带膜、重 試)、...
1 優(yōu)先隊列(Priority Queue)優(yōu)先隊列與普通隊列的區(qū)別:普通隊列遵循先進(jìn)先出的原則袜爪;優(yōu)先隊列的出隊順序與入隊順序無關(guān),與優(yōu)先級相關(guān)薛闪。優(yōu)先隊列可以使用隊列的接口辛馆,...
1.整型哈希函數(shù)的設(shè)計小范圍正整數(shù)直接使用小范圍負(fù)整數(shù)整體進(jìn)行偏移大整數(shù),通常做法是"模一個素數(shù)" 2.浮點型哈希函數(shù)的設(shè)計轉(zhuǎn)成整型進(jìn)行處理 3.字符串哈希函數(shù)的設(shè)計轉(zhuǎn)成整型...
二叉樹跟鏈表一樣豁延,二叉樹也是一種動態(tài)數(shù)據(jù)結(jié)構(gòu)怀各,即,不需要在創(chuàng)建時指定大小术浪。跟鏈表不同的是,二叉樹中的每個節(jié)點寿酌,除了要存放元素e胰苏,它還有兩個指向其它節(jié)點的引用,分別用Node ...
Java并發(fā)工具類的三板斧 狀態(tài)醇疼,隊列硕并,CAS 狀態(tài): 隊列:在FutureTask中法焰,隊列的實現(xiàn)是一個單向鏈表,它表示所有等待任務(wù)執(zhí)行完畢的線程的集合倔毙,如果獲取結(jié)果時埃仪,任務(wù)...
LinkedBlockingQueue基于鏈表實現(xiàn),未指定容量時默認(rèn)容量為Integer.MAX_VALUE陕赃,即無界阻塞隊列卵蛉,節(jié)點動態(tài)創(chuàng)建,節(jié)點出隊后可被GC么库,伸縮性較好傻丝;如...
基于AbstractQueuedSynchronizer(簡稱AQS)這個抽象類實現(xiàn),AQS實現(xiàn)了主體邏輯诉儒,使用的模板方法模式葡缰。不同的實現(xiàn)類具體實現(xiàn)不同。AQS結(jié)構(gòu) 等待隊列...
占小狼老生常談忱反,HashMap死循環(huán)詳細(xì)分析了HashMap多線程環(huán)境下的問題泛释。一點感悟:hashmap多線程擴(kuò)容,發(fā)生死循環(huán)温算。需要滿足以下幾點怜校。1.新建立的鏈表跟原鏈表順序...
網(wǎng)上有人說為什么要用兩個condition來實現(xiàn)生產(chǎn)者消費者模式 如果只有一個condition,通過代碼演示,程序卡著不動了米者。 設(shè)置隊列容量為1韭畸,假設(shè)現(xiàn)在隊列為空,條件隊列...
參考 一行一行源碼分析清楚AQSAQS 獨占鎖:只能有一個線程持有鎖甘萧,獲取鎖失敗的線程進(jìn)入阻塞隊列,持有鎖的線程釋放鎖之后會喚醒等待隊列中的第一個線程梆掸,讓其來占有鎖AQS 共...