What is context

A Context carries a deadline, a cancellation signal, and other values across API boundaries.

context 是 golang 一個獨特的用法,在其他語言比較少看到這個設計,原因是 context 主要是設計用來連接 goroutine 使用的。go 在接收 server request 的時候,都會開啟一個 goroutine 來處理,而且這個 goroutine 可能會再開另一個 goroutine ,比如說 db query, RPC services 等,但是如果其中一個 goroutine 取消或是處理逾時了,這一串的 goroutine 都應該要立即拋棄手邊的工作,以避免佔用系統資源。要怎麼達成管理這一連串的 goroutine ,就是使用 context 了。 [Read More]
Tags: golang