在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