Senior
Un nouveau thread est-il créé dans le système d'exploitation pour chaque goroutine?
sobes.tech IA
Réponse de l'IA
Нет, на каждую горутину в Go не создаётся отдельный поток операционной системы. Горутину можно рассматривать как лёгкую нить (lightweight thread), которая управляется планировщиком Go (runtime scheduler).
Go runtime использует модель M:N, где M — количество потоков ОС, а N — количество горутин. Планировщик распределяет множество горутин на меньшее число потоков ОС, эффективно используя системные ресурсы.
Это позволяет создавать тысячи и даже миллионы горутин без значительных накладных расходов, в отличие от системных потоков, которые более тяжеловесны.
Таким образом, горутины — это кооперативно планируемые задачи внутри одного или нескольких потоков ОС, а не 1:1 соответствие.