您的位置 首页 知识分享

Golang 中执行了 context 的 Cancel,但

中执行了 context 的 cancel,但 在给定的代码示例中,gen 函数生成一个通道,在收到 ctx.…

Golang 中执行了 context 的 Cancel,但

中执行了 context 的 cancel,但

在给定的代码示例中,gen 函数生成一个通道,在收到 ctx.done() 信号时打印 “done”,否则生成并发送一个数字。mn 函数使用 withcancel 创建了一个有取消功能的 context,并通过调用 cancel 取消它。

预期的是,当执行 cancel() 时,

解决这个问题的方法是在 gen 函数中在关闭 context 时关闭通道。这将导致 range 循环结束,并允许

立即学习“”;

func gen(ctx context.Context) <-chan interface{} {     ch := make(chan interface{})     go func() {         n := 0         for {             select {             case <-ctx.Done():                 fmt.Println("done")                 close(ch) // 关闭通道,range 结束                 return             default:                 n += 1                 ch <- n             }         }      }()     return ch }
登录后复制

以上就是Golang 中执行了 context 的 Cancel,但的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/4979.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部