context包
被稱爲上下文包,go 1.7加入,用於協程之間的上下文數據的傳遞、中止核控制超時。
在網絡編程中可用於請求的中止,比如服務訪問鏈的中止:a用戶註冊->b調用用戶服務->c調用積分服務
。
其中a調用b,b調用c。如果由於a和b之間因爲某些原因被取消或者超時了,那麼b和c之間也要取消。
Context接口
源碼解讀:
type Context interface{
//返回一個超時時間
Deadline()(deadline time.Time, ok bool)
//返回只讀channel
//一旦可讀,代表父context發起取消操作,通過該方法可以收到此信號
//完成協程退出並返回Err()