goroutineのスケジューリングについて
この動画がとてもわかりやすい。
ポイントとしては、
global/local queue: スケジューラーは global queue と goroutine ごとの local queue の二つを用いて job を管理している
work-stealing: アイドル状態のスレッドは他のスレッドから job を取ってくることができる
handoff: バックグランドスレッドが、ブロッキング状態にあるスレッドの local queue にある job を他のスレッドに委譲することができる
preemption: バックグラウンドスレッドが、長時間実行中の goroutine を検出し、可能であれば実行を止める
https://www.youtube.com/watch?v=YHRO5WQGh0k
https://niconegoto.hatenadiary.jp/entry/2017/04/11/092810
goroutine がなんなのか、コードベースでも紹介してくれている
https://zenn.dev/imamura_sh/articles/goroutine-29492669efb6aef33306
最適な goroutine の数について
https://www.slideshare.net/lestrrat/select-66633666
channel の使い方について
channel の原理についての動画
https://www.youtube.com/watch?v=KBZlN0izeiY
#go
#プログラミング