Go の並行処理: goroutine と channel の基本
言語
Go の並行処理は、軽量スレッドである goroutine と、値を受け渡す channel の2つが柱だ。「メモリを共有して通信する」のではなく「通信してメモリを共有する」という設計思想が表れている。
goroutine を起動する
関数呼び出しに go を付けるだけで、別の goroutine として並行に走る。
go func() {
fmt.Println("別の goroutine で実行")
}()channel で受け渡す
goroutine 間の値のやり取りは channel を通す。送受信がそのまま同期点になるので、ロックを直接書く場面を減らせる。


