Maison  >  Article  >  développement back-end  >  La différence entre l'erlang et le golang

La différence entre l'erlang et le golang

(*-*)浩
(*-*)浩original
2019-12-02 15:49:154910parcourir

La différence entre l'erlang et le golang

La différence entre Erlang et Golang :

Le premier a une attitude différente envers les serrures, le second a une attitude différente envers asynchrone IO, Le troisième mécanisme de message est différent. Erlang est très opposé aux verrous et pense que les variables immuables peuvent éviter les verrous dans une large mesure.

Le point de vue de Golang est que les verrous ont un gros fardeau, mais les verrous sont fondamentalement inévitables. Une fois que quelqu'un partage l'état et s'anticipe pour le changer, le verrou doit exister. . (Apprentissage recommandé : GO )

Le serveur ERLANG est une entrée unique, il est logique qu'il n'y ait pas de concurrence, un processus est un exécutif, donc le serveur d'Erlang et le serveur de Golang et Le serveur de Golang Golang est différent. Le serveur de Golang est un serveur composé de plusieurs processus (goroutine). Chaque requête crée un processus indépendant (goroutine).

Mais Erlang est différent. Un serveur est un processus unique. Toutes les demandes simultanées entrent dans la boîte aux lettres du processus. Ensuite, le serveur ne dispose pas de l'e-mail (contenu de la demande) de la boîte aux lettres du processus pour le traitement. demande de simultanéité, donc aucun verrou n’est requis.

Implémentation à haute concurrence d'Erlang :

Premièrement : chaque serveur physique Erlang aura de nombreux serveurs, et chaque serveur n'interférera pas les uns avec les autres. Ils peuvent être simultanés.

La seconde est qu'un seul serveur utilise des E/S asynchrones pour une concurrence élevée.

Go estime qu'il ne devrait jamais y avoir de code IO asynchrone, tandis qu'Erlang est basé sur des IO asynchrones et ajoute un modèle de processus léger au mélange.

Prise en charge de la concurrence par Golang :

Premièrement : le retour de valeur La chose la plus importante à propos de Golang est de réduire les coûts d'exécution.

Deuxième : utilisez le corps de l'exécutable comme une fonctionnalité standard intégrée au langage (golang n'a qu'un seul style de code standardisé). Le modèle de concurrence de Go est le modèle de concurrence le plus ancien. Le modèle de concurrence comprend des routines, des opérations atomiques, des mutex, une synchronisation, des messages et des E/S synchrones.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn