Идите «обычно», когда вам нужно

Простое руководство по горутинам

Время от времени нам нужно делать какую-то работу одновременно или параллельно. Вот как начать работу с ним в Go

Давайте углубимся. Подпрограммы Go — это легкие потоки, управляемые средой выполнения Go. Обычно при запуске они будут работать одновременно с другими функциями и подпрограммами.

Вот как это выглядит:

Функция worker — это простая функция, которая выводит в STDOUT какое-то сообщение.

Функция hardWorker состоит в том, чтобы имитировать выполнение трудоемкой задачи.

В основном вызывается go worker(«go ‘обычно’’). И тогда «блокирующий» работяга остановит программу.

Это результат:

Вы, вероятно, заметили, что функция hardWorker печатается раньше, чем подпрограмма go, несмотря на то, что подпрограмма go была вызвана раньше. Причина в том, что когда запускается новая горутина, вызов горутины немедленно возвращается. Таким образом, без ожидания в строке 19 примера вывод будет просто:

Это все, что вам нужно знать об этом.

Дальнейшее чтение:

Официальная документация по Go https://go.dev/doc/efficient_go#goroutines