В Golang небуферизованный канал - это просто очередь FIFO. Сколько элементов может находиться в этой очереди в любое время? Есть ли предел?Насколько велика очередь каналов в Голанге?
ответ
Количество элементов, которые могут быть в самом канале, равно нулю, поскольку оно не загружено. Но количество горитов не ограничено, чем можно ожидать, чтобы отправить на канал. (Когда goroutine пытается отправить по каналу без буфера или полного буфера, он блокирует, пока другой канал не будет готов к приему с канала.)
Принят ответ, поскольку он имеет наибольший смысл, однако действительно ли число горутинцев не имеет выхода? – smokeybear
Также в этом случае, если канал небуферизован, будут ли goroutines также отправляться в порядке FIFO? или это случайный? – smokeybear
См. [Максимальное количество goroutines] (http://stackoverflow.com/questions/8509152/max-number-of-goroutines). На количество горуций нет ограничений на языке, но поскольку каждый использует небольшой объем памяти, это налагает физический предел. – e0k
- 1. Ошибка переполнения очереди Twilio: насколько велика очередь?
- 2. Насколько велика Integer() в Java?
- 3. Очередь каналов
- 4. Насколько велика величина i2c_msg.buf?
- 5. Насколько велика Метеорная сессия
- 6. Насколько велика большая?
- 7. Насколько велика моя матрица?
- 8. Насколько велика переменная, в python?
- 9. Насколько велика строка в PHP?
- 10. Чтение из нескольких каналов одновременно в Голанге
- 11. Насколько велика высота таблицы hbase?
- 12. Насколько велика должна быть cachDirectory?
- 13. Насколько велика база данных гидролокатора?
- 14. Насколько велика будет изображение UIBarButtonItem?
- 15. Насколько велика база данных CMS?
- 16. Насколько велика такая база данных?
- 17. Насколько велика единая ячейка памяти?
- 18. Насколько велика wchar_t с GCC?
- 19. Насколько велика ссылка на объект в .NET?
- 20. Насколько велика может идентификационная получить в PostgreSQL
- 21. Насколько велика роль субъективности в программировании?
- 22. Насколько велика может быть ubyte [] в D?
- 23. Насколько велика нагрузка на pprof в go
- 24. Насколько велика загрузка производительности FTP в PHP?
- 25. Насколько гибкость в бизнес-требованиях слишком велика?
- 26. Насколько велика IF ELSE в PHP
- 27. Насколько велика глобально объявленная структура данных?
- 28. Насколько велика прецизионная потеря, которая удваивается?
- 29. Насколько велика маленькая, нормальная, большая и большая?
- 30. Насколько велика сделка - небольшая утечка памяти?
Небуферизованный означает отсутствие буфера (ноль). См. [Golang - размер буфера канала?] (Http://stackoverflow.com/questions/11943841/golang-what-is-channel-buffer-size). – e0k
Получаю, что, однако, небуферизованное свойство vs buffered влияет только на ** блокировку ** выполнения, а не на количество вещей, которые добавляются в очередь. Если я продолжаю одновременное обращение к процедуре go, которая отправляется на небуферизованный канал, я все равно буду видеть все сообщения, обрабатываемые в последовательном порядке, ни одно из сообщений не будет потеряно - из того, что я могу видеть – smokeybear
Вопрос: сколько ваших заблокированных goroutines ждать, чтобы написать небуферизованный канал? – e0k