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