Назад к вопросам
Junior — Middle
75
Каким образом осуществляется управление несколькими потоками выполнения в языке Go?
Компании, где спрашивали
Эрливидео
Ответ от нейросети
sobes.tech AI
В языке Go управление несколькими потоками выполнения осуществляется с помощью горутин (goroutines). Горутин — это легковесный поток, который запускается с помощью ключевого слова go перед вызовом функции. Планировщик Go внутри рантайма управляет выполнением горутин, распределяя их по системным потокам.
Для синхронизации и обмена данными между горутинами часто используют каналы (channels), которые обеспечивают безопасную передачу данных и позволяют избежать гонок.
Пример запуска двух горутин:
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 3; i++ {
fmt.Println(s)
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go say("world") // запускаем горутину
say("hello") // выполняется в основном потоке
}
В этом примере функция say вызывается в отдельной горутине, что позволяет выполнять две задачи параллельно.