Sobes.tech
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 соответствие.