在Golang无缓冲通道只是一个FIFO队列。随时可以在队列中放入多少物品?有限制吗?Golang的渠道队列有多大?
回答
可以在通道本身中的项目数为零,因为它是无缓冲的。但是,可以等待在频道上发送的goroutine数量没有限制。 (当一个goroutine尝试发送一个没有缓冲区或完整缓冲区的通道时,它会阻塞,直到另一个goroutine准备从该通道接收数据。)
会接受答案,因为它是最有意义的,但是是否真的未定义的goroutines的数量? – smokeybear
同样在这种情况下,如果通道没有缓冲,那么会按照先进先出顺序来处理通道?或者是随机的? – smokeybear
请参见[最大数量的例程](http://stackoverflow.com/questions/8509152/max-number-of-goroutines)。对goroutine的数量没有语言限制,但由于每个使用少量的内存,这就强加了一个物理限制。 – e0k
- 1. Golang handlefunc与渠道
- 2. 多渠道渠道API
- 3. golang渠道vs.常规产卵性能
- 4. DevExpress的多渠道平台
- 5. 有没有办法从google reporting v4 api检索多渠道渠道数据?
- 6. 如何获得多渠道渠道中的Interection类型
- 7. Google Analytics多渠道渠道互动的解读
- 8. 团队如何处理太多的沟通渠道?
- 9. 多渠道渠道API Apps脚本Google电子表格
- 10. 使用多渠道API重现自定义渠道分组
- 11. 的渠道
- 12. GAE渠道API - 渠道创建成本
- 13. 微软团队:如何从团队的渠道获取所有标签?
- 14. Golang,App Engine的,渠道和线程安全
- 15. 与渠道
- 16. Golang。通道阵列
- 17. 使用渠道去管道
- 18. 转到:学习渠道和排队,致命的错误
- 19. 有没有渠道积极倾听wcf
- 20. 有没有渠道积极倾听
- 21. 使用git开发“多渠道”开发
- 22. 比较多个Google分析渠道
- 23. Antlr4渠道行为
- 24. 渠道或类别?
- 25. Pytorch maxpooling渠道维
- 26. BLE广告渠道
- 27. 凤凰渠道polyfills
- 28. 在特定渠道 -
- 29. 渠道:列表API不返回
- 30. 如何有效地应用转变为多渠道numpy的ndarray?
无缓冲意味着没有缓冲区(零)。请参阅[Golang - 什么是通道缓冲区大小?](http://stackoverflow.com/questions/11943841/golang-what-is-channel-buffer-size)。 – e0k
我明白了,但是无缓冲区与缓冲区属性只影响执行的**阻塞**,而不是被添加到队列中的事物的数量。如果我一直在同时调用发送到无缓冲通道的去程序,我仍然可以看到所有按顺序处理的消息,没有任何消息会丢失 - 从我所能看到的 – smokeybear
您的问题有多少被阻塞的goroutines可以是否正在等待写入无缓冲的频道? – e0k