Горутины в Go — это легковесные потоки, которые позволяют эффективно управлять асинхронностью и параллельностью. Они запускаются с помощью ключевого слова go и работают в рамках одного процесса, что значительно экономит ресурсы по сравнению с системными потоками.
Какой тип многозадачности используется в Go? Как планировщик Go прерывает горутины?
Горутины в Go — это легковесные потоки, которые позволяют эффективно управлять асинхронностью и параллельностью.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Горутины в Go — это легковесные потоки, которые позволяют эффективно управлять асинхронностью и параллельностью. Они запускаются с помощью ключевого слова go и работают в рамках одного процесса, что значительно экономит ресурсы по сравнению с системными потоками.
Горутины позволяют писать асинхронный код, который выглядит как последовательный, упрощая разработку. Планировщик Go автоматически распределяет горутины по доступным ядрам процессора, обеспечивая параллельное выполнение.
Пример запуска горутины:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запуск горутины
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}
Таким образом, горутины — ключевой инструмент для конкурентного программирования в Go, позволяющий создавать масштабируемые и отзывчивые приложения.