为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中的访问者模式与渠道

Go 中的访问者模式与渠道

Go
慕侠2389804 2021-12-07 14:59:19
如果有一个列表需要生成和处理(最好是在生成时),那么约定是什么?似乎回调没有被使用那么多,而渠道是普遍的最爱。为每个项目提供要调用的回调与启动 goroutine 来生成列表并同步读取和处理每个项目都没有决定性的好处。我会理解在等待列表完成时是否有多个任务需要完成,或者两者都在执行昂贵的任务并且一个人可能能够在生产下一个项目时处理最后一个项目,但那不是在这种情况下,在这里。生产者和消费者都是低成本的。
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

约定是使用回调。以下是标准库中的几个示例:filepath.Walkast.Walk

带有生成器 goroutine 模式的通道的一个缺点是,当消费者直到通道关闭才接收时,它会泄漏一个 goroutine。另一个问题是这为数据竞争创造了机会。标准库在 Go 的早期使用了这种模式。由于这些问题,此代码在 Go 1 之前被删除。


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信