/images/avatar.png

Take notes of everything I learn

pprof: Sync.atomic vs Sync.mutex

Sync.atomic vs Sync.mutex sync.atomic: https://pkg.go.dev/sync/atomic sync.mutex: https://pkg.go.dev/sync#Mutex 寫多讀少 -> 互斥鎖 寫少讀多 -> 原子操作, 讀寫鎖 Sync.atomic vs Sync.mutex Mutex vs Atomic 的情況裡,Mutex 相對更重。 因為涉及到更多的 goroutine 之間的上下文切換 pack blocking go

Interfaces and Duck Typing in Go

Interfaces and Duck Typing in Go if it looks like a duck and quacks like a duck, it’s a duck 當看到一隻鳥走起來像鴨子、游泳起來像鴨子、叫起來也像鴨子,那麼這隻鳥就可以被稱為鴨子 source: https://theburningmonk.com/2015/05/why-i-like-golang-interfaces/ 意思就

Consistency, Availability, Partition Tolerance (CAP)

Consistency, Availability, Partition Tolerance (CAP) Consistency (一致性), Availability (可用性), Partition Tolerance (部分容錯性) Source : CAP 理論 Source : https://www.w3resource.com/mongodb/nosql.php Source : https://github.com/donnemartin/system-design-primer/raw/master/images/bgLMI2u.png 來源:CAP Theorem: Revisited 在一個分散式系統中,只能滿足以下三個項目的任兩

Golang Sync.Map

Go sync.Map source from : https://mp.weixin.qq.com/s/8aufz1IzElaYR43ccuwMyA 在之前的 《爲什麼 Go map 和 slice 是非線程安全的?》 文章中,我們討論了 Go 語言的 map 和 slice 非線程安全的問題,基於此引申出了 map 的兩種目前在業界使用