📝 Compare And Swap ● Mutexをアクセス制御する リソースにつき1つ作成 ● それを複数のgoroutineが 参照する resource G Mutex ✅ ❌ ❌ G G 変数の値の更新が競合しないようにatomicな操作で更新 https://pkg.go.dev/sync/atomic#pkg-overview
goroutine実行過程の概要 X := 3 pow(x) P G G M G G (goroutine): goroutine本体 P (Prosessor): 論理プロセッサ M (Machine): OSスレッド Inspired by https://speakerdeck.com/sakiengineer/sukeziyurakaraxue-bugorantaimu-code-reading-of-runtime-pkg
semtable Mutex Mutex G G G G G 各Mutexをロックしようと待機している goroutineの待ち行列 「各Mutexのsemaをロック状態に更新しようと待機する goroutineの待ち行列」の集合 G Mutex Mutex G G G sematable (semaRootの配列) src/runtime/sema.go