Golangs Methode zum Erreichen einer hohen Parallelität: Zuerst wird M einem Kernel-Thread zugeordnet und durch die Planung von Scheduler P mit einem oder mehreren G verbunden M und P realisieren über P Schedule N Gs schließlich die Viele-zu-Viele-Beziehung zwischen Kernel-Threads und Gs [M:N].
Golangs Methode zum Erreichen einer hohen Parallelität:
go language verwendet den MPG-Modus, um CSP zu implementieren
Videokursempfehlung→:„Millionen von Daten-Parallelitätslösungen (theoretisch + praktisch)“
Beginnen Sie in traditioneller Parallelität. Viele Threads werden nur Erhöhen Sie den CPU- und Speicheraufwand. Zu viele Threads verbrauchen große Mengen an Computerhardwareressourcen, was zu einem Engpass bei der Parallelität führt.
M
bezieht sich auf Maschine, und ein M ist direkt mit einem Kernel-Thread verknüpft.
P
bezieht sich auf „Prozessor“, der den von M benötigten Kontext darstellt und auch der Prozessor ist, der die Codelogik auf Benutzerebene verarbeitet.
G
bezieht sich auf Goroutine, bei dem es sich im Wesentlichen um einen leichten Thread handelt.
Mein persönliches Verständnis: M ist mit einem Kernel-Thread verknüpft, und durch die Planung von Scheduler P (Kontext) können einer oder mehrere verbunden werden G entspricht der Aufteilung eines Kernel-Threads in N Benutzer-Threads. M und P haben eine Eins-zu-Eins-Beziehung (aber die Beziehungsänderungen in der tatsächlichen Planung werden durch P geplant (P und G haben eine Eins-zu-Eins-Beziehung). viele Beziehung). Die Hardwarekonfiguration wird geometrisch zunehmen und die Parallelität wird erheblich verbessert.
Verwandte Lernempfehlungen: Go-Sprachtutorial
Das obige ist der detaillierte Inhalt vonWie erreicht man eine hohe Parallelität in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!