Back to questions
VK
Middle
2
Что такое горутины в Go и чем они отличаются от системных потоков?
Companies where asked
Answer from AI
sobes.tech AI
Горутины в Go — это лёгкие потоки выполнения, управляемые рантаймом Go, а не операционной системой. Они позволяют запускать функции параллельно с минимальными затратами по памяти и времени на переключение контекста.
Отличия от системных потоков:
- Горутины намного легче по ресурсам (обычно стартуют с нескольких килобайт стека, который динамически растёт).
- Планировщик горутин встроен в рантайм Go и эффективно распределяет их по системным потокам.
- Переключение между горутинами происходит быстрее, чем между системными потоками.
Пример создания горутины:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускает горутину
time.Sleep(time.Second) // ждём, чтобы горутина успела выполниться
}