Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen Erlang und Golang

Der Unterschied zwischen Erlang und Golang

(*-*)浩
(*-*)浩Original
2019-12-02 15:49:154948Durchsuche

Der Unterschied zwischen Erlang und Golang

Der Unterschied zwischen Erlang und Golang:

Der erste hat eine andere Einstellung gegenüber Schlössern, der zweite hat eine andere Einstellung gegenüber asynchrones IODer dritte Nachrichtenmechanismus ist anders. Erlang ist sehr abgeneigt gegenüber Sperren und glaubt, dass unveränderliche Variablen Sperren weitgehend vermeiden können.

Golangs Standpunkt ist, dass Sperren zwar eine große Belastung darstellen, aber Sperren grundsätzlich unvermeidbar sind. Sobald jemand den Zustand teilt und sich gegenseitig dazu verleitet, ihn zu ändern, muss die Sperre bestehen . (Empfohlenes Lernen: GO )

Der ERLANG-Server ist ein einzelner Eintrag. Es ist logisch, dass es keine Parallelität gibt. Ein Prozess ist eine Exekutive, daher sind Erlangs Server und Golangs Server usw Der Golang-Server ist anders. Der Golang-Server besteht aus mehreren Prozessen (Goroutine). Jede Anfrage erstellt einen unabhängigen Prozess (Goroutine).

Aber ein Server ist ein einzelner Prozess. Alle gleichzeitigen Anforderungen gelangen in das Prozesspostfach. Dann nimmt der Server die E-Mail (Inhalt der Anforderung) zur Verarbeitung entgegen Parallelitätsanforderung, daher ist keine Sperre erforderlich.

Erlangs Implementierung mit hoher Parallelität:

Erstens: Jeder physische Erlang-Server verfügt über viele Server, und jeder Server stört sich nicht gegenseitig. Sie können gleichzeitig arbeiten.

Der zweite Grund ist, dass ein einzelner Server asynchrone E/A für eine hohe Parallelität verwendet.

Go glaubt, dass es niemals asynchronen IO-Code geben sollte, während Erlang auf asynchronem IO basiert und dem Mix ein leichtes Prozessmodell hinzufügt.

Golangs Unterstützung für Parallelität:

Erstens: Wertrendite Das Wichtigste an Golang ist die Reduzierung der Ausführungskosten. Der Mindeststapel von Golang kann 4K betragen.

Zweitens: Verwenden Sie den ausführbaren Körper als eine in die Sprache integrierte Standardfunktion (Golang hat nur einen standardisierten Codestil). Das Parallelitätsmodell von Go ist das älteste Parallelitätsmodell. Das Parallelitätsmodell umfasst Routinen, atomare Operationen, Mutexe, Synchronisation, Nachrichten und synchrone E/A.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Erlang und 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