在并发程序中,由于连接超时,用户取消或系统故障,往往需要执行抢占操作。我们之前使用done通道来在程序中取消所有阻塞的并发操作,虽然取得了不错的效果,但同样也存在局限。

如果我们可以给取消通知添加额外的信息:例如取消原因,操作是否正常完成等,这对我们进一步处理会起到非常大的作用。

在社区的不断推动下,Go开发组决定创建一个标准模式,以应对这种需求。在Go 1.7中,context包被引入标准库。