源碼目錄 time/time.go (1.1.4.1) 數(shù)據(jù)結(jié)構(gòu) 從數(shù)據(jù)結(jié)構(gòu)上看,timer和ticker其實(shí)是一樣的。每個(gè)P都維護(hù)一個(gè)time...
源碼 版本1.14.1 相關(guān)目錄runtime/asm_amd64.sruntime/proc.goruntime/runtime2.go 關(guān)鍵...
近來(lái)無(wú)事,仿httprouter造一輪子gorouter gorouter 是一個(gè)輕便的HTTP API 路由庫(kù)。 項(xiàng)目創(chuàng)建背景 之前一直使用大...
源碼目錄 ///sync.pool.go (1.14.1) 前言 sync.pool對(duì)象池是個(gè)好東西,避免對(duì)象的反復(fù)創(chuàng)建和回收。對(duì)于一些需要頻繁...
源碼目錄 //runtime/runtime2.go。 (go 1.12.7) interface分為兩類:iface和eface。eface不...
讀寫鎖(RWMutex)是在互斥鎖(Mutex)的基礎(chǔ)上構(gòu)建的。Mutex筆記見(jiàn)另一篇 那么為什么需要讀寫鎖呢?試想一下,在讀多寫少的場(chǎng)景下,m...
老實(shí)說(shuō)呢,Mutex源碼我看了好多遍,依舊沒(méi)完全看懂。各種狀態(tài)邏輯很難理解。(golang 1.12.7) 先來(lái)看看Mutex的核心注釋 數(shù)據(jù)結(jié)...
數(shù)據(jù)結(jié)構(gòu) Add Done Wait 小結(jié) 不可以復(fù)制,只能通過(guò)指針傳遞 最多可存放2^32個(gè)未執(zhí)行完的goroutine wait和add不要...
前言 本文基于golang 1.12.7 linux-amd64 golang采用基于tcmalloc的內(nèi)存管理。按分配內(nèi)存大小采用不同策略: ...