Goroutines
関数を並行処理で走らせるGoの機能.
バグを避けるためのがんばり
Goroutinesより広いスコープの変数を参照しない
引数に値を代入して渡す.
データをやりとりする際はチャネルの利用とsync.Mutexなどのメモリロックによってメモリ共有を行ってやりとりする手段とが考えられる.
Do not communicate by sharing memory; instead, share memory by communicating.
チャネルはゴールーチンセーフなので積極的に利用した方が安全.
カウンタなどは排他ロックの方が素直な実装になるので,必ずしもという話ではない.
使い終わったGoroutinesはちゃんとcloseしないとメモリリークが発生する.
ゴルーチンリークと呼ぶらしい.
ランタイムの実装などではGと表記されている.