ThreadLocal<>適用于什么場(chǎng)景? 每個(gè)線程都有自己的拷貝實(shí)例,其他線程不能訪問。 方便在線程內(nèi)部傳遞。其實(shí)可以在線程內(nèi)部new一個(gè)對(duì)象來實(shí)現(xiàn)這個(gè)需求,但是這樣會(huì)產(chǎn)生...
在使用 Git 作為版本控制的時(shí)候,我們可能會(huì)由于各種各樣的原因提交了許多臨時(shí)的 commit,而這些 commit 拼接起來才是完整的任務(wù)。那么我們?yōu)榱吮苊馓嗟?comm...
1. 現(xiàn)代瀏覽器在與服務(wù)器建立了一個(gè) TCP 連接后是否會(huì)在一個(gè) HTTP 請(qǐng)求完成后斷開?什么情況下會(huì)斷開? 在 HTTP/1.0 中,一個(gè)服務(wù)器在發(fā)送完一個(gè) HTTP 響...
ZooKeeper是一個(gè)分布式協(xié)調(diào)系統(tǒng),應(yīng)用廣泛,其功能有:服務(wù)發(fā)現(xiàn)配置管理分布式鎖分布式領(lǐng)導(dǎo)選舉zookeeper是一個(gè)樹形結(jié)構(gòu),類似Linux的文件系統(tǒng),對(duì)每個(gè)節(jié)點(diǎn)提供監(jiān)...
IO離不開編碼,因?yàn)橐?jié)約空間。varint是一種緊湊型編碼。它用一個(gè)或多個(gè)字節(jié)來表示一個(gè)數(shù)字,值越小的數(shù)字使用越少的字節(jié)數(shù)。這能減少用來表示數(shù)字的字節(jié)數(shù)。Varint 中的...
我記得第一次編譯thrift文件是運(yùn)行一個(gè)腳本,可能是處于好奇心吧,看了看腳本里的內(nèi)容,大概只有一行,但是是沒有工程意識(shí)去認(rèn)真研究。所以對(duì)rpc的認(rèn)知,還是停留在紙面上。這種...
使用redis處理大量數(shù)據(jù),一定會(huì)用到集群,一般有三種實(shí)現(xiàn)方式: 官方clusters:無中心化設(shè)計(jì),不好升級(jí),缺乏最佳實(shí)踐。 proxy分片:Codis是代表,通過Prox...
一個(gè)任務(wù):從數(shù)據(jù)庫中讀取50行數(shù)據(jù),要求某列不能重復(fù),把結(jié)果保存到本地文件中。首先看SQL怎么寫。 如果不能寫出SQL,只能查出大量數(shù)據(jù),然后去重。問題來了,怎樣根據(jù)某一列去...
內(nèi)存映射文件,是指文件和內(nèi)存邏輯地址映射起來。mmap()返回一個(gè)指針ptr,可以通過指針進(jìn)行讀寫,而不必通過read()或者write()ptr指向一個(gè)邏輯地址,需要MMU...
工程師的一大樂趣就是打磨工具,好比劍客磨劍,戰(zhàn)士擦槍。利器會(huì)帶來快感,因?yàn)槟芨咝实厣a(chǎn)。自己從工作后就接觸maven了,當(dāng)時(shí)是有些抵觸的。因?yàn)樽约呵啡惫こ處熕季S,對(duì)工具理解...