Principal
40
Qu'est-ce qu'une goroutine et en quoi diffère d'un thread du système d'exploitation?
Entreprises à qui on a demandé
AlfaCapture
Réponse de l'IA
sobes.tech IA
Горутина — это легковесный поток выполнения, реализованный на уровне языка (например, в Go). В отличие от потоков ОС, горутины управляются рантаймом языка, а не ядром операционной системы.
Основные отличия:
- Легковесность: горутины занимают гораздо меньше памяти (обычно несколько килобайт стека), тогда как поток ОС требует гораздо больше ресурсов.
- Планирование: горутины планируются планировщиком внутри рантайма языка, что позволяет эффективно переключать контекст без системных вызовов.
- Масштабируемость: можно запускать тысячи и даже миллионы горутин, тогда как с потоками ОС такой масштаб часто невозможен из-за ограничений ресурсов.
Пример на Go:
func main() {
go func() {
fmt.Println("Горутина работает")
}()
time.Sleep(time.Second) // Ждем, чтобы горутина успела выполниться
}
Здесь go запускает функцию как горутину, которая выполняется параллельно с основным потоком.