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