【Golang】ContextでTimeoutする
1.importでcontextを読み込む
2. context.Background()でcontextを作る
3. context.WithTimeoutにcontext.Backgroundで作ったものと、Timeoutの時間を渡すZ(1秒で設定しているのでtime.Sleepより早く実行され、必ずTimeoutになる)
4. 返ってきたctx(コンテキスト)とcancel。ctxをゴルーチンに渡す。型はcontext.Context
5. defer cancel()で関数の終了とともにcancel()を実行
6. selectの中でctx.Done()でtimeoutを待ち受けるcaseを作る
7. 表示して処理を戻す
・context structから2つ生成すること "Background"と"WithTimeout"
-> 調べる
・context.Context型とするところを書かないで、string型になってたこと
(ctx, ch chan string)になっていた
・slect分の中でreturnを返さず、処理が続いたこと。ずーっとcontext timeout!!!が出てきた
・cancel()が何しているの
-> 調べる