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