Go 并发编程:基础与实践
1. Go 并发基础
在 Go 语言中,并发编程是其核心特性之一。为了实现优雅的并发控制,我们需要深入理解 Go 上下文(context)的使用。
1.1 上下文取消信号的传递
当 main 函数返回时,我们希望能够优雅地关闭文件描述符。可以使用 context.WithCancel 来实现这一目的,它会返回一个可取消的上下文和一个取消函数。示例代码如下:
func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
go func() {
CreateFileWatcher(ctx, "foo.txt")
}()
// ...
}
当 main 函数返回时,会调用 cancel 函数,从而取消传递给 CreateFileWatcher 的上下文,确保文件描述符被优雅关闭。
1.2 上下文的值传递
Go 上下文的另一个重要用途是携带键值对列表。可以使用 context.WithValue 来创建一个携带值的上下文:
ctx := context.WithValue(parentCtx,
Go并发编程:上下文详解与实践
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



