Как стать автором
Обновить

Комментарии 11

Но отдельной реализации очереди в стандартной библиотеке нет.

Каналы (буферизированные) вполне себе очереди. Особенно когда речь идет о взаимодействии двух горутин.

Да. Но каналы имеют фиксированный размер. Если в очередь пишет и читает 1 goрутина, как в алгоритме обхода дерева в ширину, например, то появляется возможность deadlock'а. Так что простые очереди тоже нужны.

Из канала можно читать и без блокирования + еще можно легко реализовать таймаут через time.After().

Но согласен — использовать каналы в одной горутине — довольно бессмысленно и порой опасно.

Однако мой коммент был не про универсальность каналов для всех применений, он был о том, что не стоит так категорично заявлять что очередей нет. Такое вот прочитает новичок и начнет все эти навороты пользовать там где канала — за глаза и за уши хватает.
Тут как на кухне: есть несколько ножей, каждый для своих задач.
Небольшим ножом для тонкой разделки овощей, большие куски говядины же порционно на стейки нарезать же не будешь? Не будешь.
НЛО прилетело и опубликовало эту надпись здесь
Справедливости ради, впервые collections framework появился в jdk 1.2 — конец 1998 года, когда джаве было почти три года. В красивом виде, с дженериками и concurrency-коллекциями — в J2SE 5.0, 2004 год (джаве — 8 лет). Go вышел в 2012 — ему 7 лет. Почему бы немного не посравнивать?
Неужели концепция языка изменится, и язык вместе со стандартной библиотекой станут дружелюбными к разработчику?
По сути, сейчас не получится написать типобезопасные обобщенные структуры данных из-за отсутствия в языке дженериков. Когда они в языке появятся, тогда, я думаю, нас ждут интересные времена :)

Довольно забавно сравнивать одну только стандартную библиотеку с++ с кучей разрозненных репозиториев на github. Давайте тогда ещё boost и abseil в сравнение включим

Большое спасибо за материал! Действительно полезно было найти такую статью в интернете, наткнулся в поисковике пока писал код на Go :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории