A Tour of Go63~72学習メモ

  • goroutineは軽量なスレッド
  • go funcでfuncを別スレッドで実行できる
  • 同期する際はチャネルを使う
  • チャネルに値を受信するまで送信されないし、受信の準備ができるまでチャネルから送信されない
  • ch := make(chan 型)の形で生成
  • チャネルにはバッファ(許容量)があるmakeの第二引数に設定できる
  • チャネルは先入先出
  • v, ok := <-c でokがtrueならチャンネルは開いてる、falseなら閉じている
  • rangeなどこれ以上くる値がないことを知らせる場合は送信側のチャネルをcloseで閉じる
  • selectでgoroutineをcaseの条件で一致するまでブロックし、一致したcaseを実行、複数一致ならランダム
  • selectでブロックしないで送受信するならdefault文を書く

演習問題は所々飛ばしてとりあえず文法を学ぶことを優先にやってきたA Tour of Goも今日で終わり!
明日からは自分が作ってるアプリを再開して早めに終わらせたいな。