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