登录
首页 >  Golang >  Go问答

共享读写通道的工作池

来源:stackoverflow

时间:2024-02-29 17:09:18 392浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《共享读写通道的工作池》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我需要你的帮助。目前,我正在尝试创建一个工作池,它从通道读取连续作业,然后将结果生成到它正在读取的同一通道,然后执行工作并将结果生成到同一通道。你会得到有点像递归的想法。有没有办法让这成为可能? 我真的很感谢您对设计模式的建议,以使用 go 例程作为工作池和读取作业的通道来实现此解决方案,然后从同一工作池将该作业的结果写入同一通道以继续工作。谢谢。


解决方案


没有理由(从 go 的角度来看)某些内容在读取后不能写回通道:

func Foo(c chan int) {
  x := <-c
  // do something to x
  c <- x
}

这很奇怪......而且老实说不会推荐它。通常我见过一个由多个通道组成的系统,数据是向下传递的,而不是进入循环。考虑树而不是图表。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《共享读写通道的工作池》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>