Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erreicht man eine hohe Parallelität in Golang?

Wie erreicht man eine hohe Parallelität in Golang?

coldplay.xixi
coldplay.xixiOriginal
2020-07-18 16:05:287162Durchsuche

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].

Wie erreicht man eine hohe Parallelität in Golang?

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.

Wie erreicht man eine hohe Parallelität in Golang?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn