D
Daily Geek News
@daily_geek_news5.8K подп.
14.5Kпросмотров
11 декабря 2024 г.
Score: 15.9K
я не помню, когда точно появилась в errgroup поддержка лимитов (смотри SetLimit и TryGo), но я точно этот момент упустил. Много лет использовал свой собственный враппер до этого, который добавлял туда семафор и все прочее, необходимое для ограничения конкурентности. Если вы тоже в танке, то теперь это все можно https://medium.com/@yardenlaif/go-sync-or-go-home-errgroup-f91a0ee72d3f Задание ему лимита гарантирует, что не больше n горутин будут запущены одновременно, когда мы вызываем eg.Go. У этого есть ожидаемый, с одной стороны, но неконцептуальный с другой, эффект, когда вызов этой Go функции может блокироваться. Т.е. понятно почему, но с точки зрения семантики запуска горутин это немного необычно. На всякий случай, для тех, кто от темы далек - errgroup простой это способ организации выполнения конкурентных задач в Go. По сути, это обертка над каналами, контекстами и горутинами, превращающая эти, относительно низкоуровневые примитивы, в нечто, чем можно пользоваться почти не напрягая извилины мозга.
14.5K
просмотров
1019
символов
Нет
эмодзи
Нет
медиа

Другие посты @daily_geek_news

Все посты канала →
я не помню, когда точно появилась в errgroup поддержка лимит — @daily_geek_news | PostSniper