Golang

【Golang】ContextでTimeoutする

【Golang】ContextでTimeoutする

golang。timeoutでcontextを作る
golang。timeoutでcontextを作る

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()が何しているの
-> 調べる

https://blog.golang.org/context

https://play.golang.org/p/2EJIDgULwMn