Утверждение "go" запускает выполнение вызова функции как независимый конкурентый поток управления, или goroutine, в том же адресном пространстве.
GoStmt = "go" Expression .
Выражение должно быть вызовом функции или метода; оно не может быть заключено в скобки. Вызовы встроенных функций ограничены как для утверждений выражений.
Значение функции и параметры оцениваются как обычно в вызывающей программе, но в отличие от обычного вызова, выполнение программы не ожидает завершения вызванной функции. Вместо этого функция начинает выполняться независимо в новой процедуре. Когда функция завершается, ее процедура также завершается. Если функция имеет какие-либо возвращаемые значения, они отбрасываются после завершения функции.
go Server()
go func(ch chan<- bool) { for { sleep(10); ch <- true }} (c)
Читайте также:
- Основы Go: Go-процедуры (goroutines)
- Эффективный Go: параллелизм, go-процедуры (goroutines)
- Go FAQ: Почему go-процедуры (goroutines) вместо потоков?
Комментариев нет:
Отправить комментарий