您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    在 Go 言语中管理 Concurrency 的三种方式(4)
    时间:2020-08-12 12:07 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    大家可以把 context 想成是一个 controller,可以随时控制不确定个数的 Goroutine,由上往下,只需宣告context.WithCancel后,再恣意时间点都可以经过cancel()来中止整个后台效劳。实践案例会用在当 App 需求重新启动时,要先通知全部 goroutine 中止,正常中止后,才会重新启动 App。

    总结

    依据不同的情境跟状况来选择不同的方式,做一个总结:

    WaitGroup:需求将单一个任务分解成多个子义务,等到全部完成后,才能停止下一步,这时分用 WaitGroup 最适宜了

    Channel + Select:Channel 只能用在比较单纯的 Goroutine 状况下,假设要管理多个 Goroutine,建议还是 走 context 会比较适宜

    Context:假设您想一次控制全部的 Goroutine,置信誉 context 会是最适宜不过的。

    【编辑引荐】

    只剩下[ ]和( )可选,Go泛型要用哪个?

    看看老码农是如何运用GO言语的

    Go言语 | 你还在这样获取文件的大小吗?

    Go言语生成二维码是如此复杂

    (责任编辑:admin)