Идите «обычно», когда вам нужно
Простое руководство по горутинам
Время от времени нам нужно делать какую-то работу одновременно или параллельно. Вот как начать работу с ним в Go
Давайте углубимся. Подпрограммы Go — это легкие потоки, управляемые средой выполнения Go. Обычно при запуске они будут работать одновременно с другими функциями и подпрограммами.
Вот как это выглядит:
Функция worker — это простая функция, которая выводит в STDOUT какое-то сообщение.
Функция hardWorker состоит в том, чтобы имитировать выполнение трудоемкой задачи.
В основном вызывается go worker(«go ‘обычно’’). И тогда «блокирующий» работяга остановит программу.
Это результат:
Вы, вероятно, заметили, что функция hardWorker печатается раньше, чем подпрограмма go, несмотря на то, что подпрограмма go была вызвана раньше. Причина в том, что когда запускается новая горутина, вызов горутины немедленно возвращается. Таким образом, без ожидания в строке 19 примера вывод будет просто:
Это все, что вам нужно знать об этом.
Дальнейшее чтение:
Официальная документация по Go https://go.dev/doc/efficient_go#goroutines