Wenn Go Scheduler neue M und P erstellt
In der Go-Laufzeit werden Goroutinen, Betriebssystem-Threads (OS-Threads) und Kontexte/ Prozessoren (M und P) arbeiten zusammen, um die Parallelität zu verwalten. Für eine effiziente Leistung ist es entscheidend zu verstehen, wann neue M- und P-Entitäten erstellt werden.
M- und P-Erstellung
Szenarioanalyse
In In Ihrem Codebeispiel erstellen Sie mehrere Goroutinen, die Blockierungsvorgänge ausführen. In diesem Szenario:
Fazit
Zusammenfassend lässt sich sagen, dass der Go-Scheduler ein neues M erstellt, wenn Die Ausführung einer Goroutine ist geplant und ein kostenloser Betriebssystem-Thread ist nicht verfügbar. Ein neues P wird erstellt, wenn die lokale Warteschlange eines vorhandenen P voll ist. Bei blockierenden Goroutinen kann jedoch die Anzahl der erstellten M die Anzahl der virtuellen Kerne übersteigen, da für jeden Blockierungsvorgang ein separater M erforderlich ist.
Zusätzliche Ressourcen
Das obige ist der detaillierte Inhalt vonWann erstellt der Go-Scheduler neue M und P?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!