Для запуска горутины навсегда в языке программирования Go, вы можете использовать цикл или блокировку, чтобы горутина выполнялась бесконечно, пока программа не будет явно остановлена.
Вот несколько способов, которые вы можете использовать для запуска горутины навечно:
- Использование цикла for:
go func() { for { // Ваш код здесь } }()
В этом примере создается новая горутина без идентификатора, которая выполняет код внутри блока for бесконечное количество раз. Вы можете разместить свой код внутри блока for, чтобы горутина выполняла необходимые действия.
- Использование блокировки:
done := make(chan bool) go func() { defer close(done) for { // Ваш код здесь } }() <-done
В этом примере создается новая горутина, которая выполняет код внутри блока for бесконечное количество раз. Блокировка канала done используется для ожидания завершения горутины. Оператор <-done
ожидает, пока значение не будет отправлено в канал done (это может быть в виде закрытия канала), что указывает на завершение горутины.
- Использование
select
с блокировкой:
done := make(chan bool) go func() { for { // Ваш код здесь } }() select { case <-done: // Горутина завершена }
В этом примере создается новая горутина, которая выполняет код внутри блока for бесконечное количество раз. Оператор select
используется для ожидания канала done и завершения горутины.
Независимо от метода, который вы выберете, помните, что бесконечный цикл в горутине может привести к зацикливанию вашей программы. Убедитесь, что у вас есть механизм остановки программы либо в коде вашей горутины, либо в основной программе.