Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpGrInr 149 of 280 menu
◀ ▶

Введение в горутины в Go

Горутина выполняет функцию отдельно от остального кода в той же программе. Пока одна ветка идет своим путем, другая может печатать текст, считать числа или ждать ответ сети, не блокируя весь процесс целиком.

Запуск отделяют от обычного вызова: перед именем функции ставят ключевое слово, и рантайм начинает ее выполнять параллельно с текущим местом. Таких веток может быть много, и они делят одну память процесса, поэтому к общим данным нужно относиться осторожно.

Главная функция не обязана дожидаться каждой ветки. Если main завершится раньше, незаконченная работа может оборваться вместе с процессом. Для согласованного окончания используют счетчик группы из пакета sync: перед запуском увеличивают ожидание, в конце ветки сообщают о готовности, а в main ждут, пока счетчик не станет нулем.

В этом разделе сначала увидим запуск и ожидание, затем несколько одинаковых веток, переменную цикла при запуске из цикла, число потоков рантайма и аварийный останов внутри отдельной ветки. Каналы и другие способы обмена данными разберем позже; здесь достаточно запуска и совместного завершения.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить