context
context是go并发模式,用户处理goroutines和其父亲之间逻辑。比如接受一个用户的请求后,针对这个请求可能需要开启多个并发的goroutine,如何把这些goroutine和这个client进行关联?就是通过context,如果用户取消请求,所有的goroutine应该能感知,并自动结束。同时可以将共用的变量存储在context之中,供不同的goroutine使用。
从一个程序说起
|
|
退出的时候,sub goroutine还没结束,存在资源泄露的情况。
使用context协调sub goroutine
|
|
使用timeout自动执行cancel
|
|