Erlang - Processus

La granularité de la concurrence dans Erlang est un processus. Un processus est une activité / tâche qui s'exécute simultanément et est indépendante des autres processus. Ces processus dans Erlang sont différents des processus et des threads que la plupart des gens connaissent. Les processus Erlang sont légers, fonctionnent en isolation (mémoire) des autres processus et sont planifiés par la machine virtuelle (VM) d'Erlang. Le temps de création du processus est très faible, l'empreinte mémoire d'un processus qui vient d'être généré est très faible et une seule VM Erlang peut avoir des millions de processus en cours d'exécution.

Un processus est créé à l'aide de la méthode spawn. La syntaxe générale de la méthode est donnée ci-dessous.

Syntaxe

spawn(Module, Name, Args)

Paramètres

  • Module - Il s'agit d'une valeur atomique prédéfinie qui doit être? MODULE.

  • Name - C'est le nom de la fonction à appeler lorsque le processus est défini.

  • Args - Ce sont les arguments qui doivent être envoyés à la fonction.

Valeur de retour

Renvoie l'ID de processus du nouveau processus créé.

Par exemple

Un exemple de la méthode spawn est présenté dans le programme suivant.

-module(helloworld). 
-export([start/0, call/2]). 

call(Arg1, Arg2) -> 
   io:format("~p ~p~n", [Arg1, Arg2]). 
start() -> 
   Pid = spawn(?MODULE, call, ["hello", "process"]), 
   io:fwrite("~p",[Pid]).

Les choses suivantes doivent être notées à propos du programme ci-dessus.

  • Une fonction appelée call est définie et sera utilisée pour créer le processus.

  • La méthode spawn appelle la fonction d'appel avec les paramètres hello et process.

Production

Lorsque nous exécutons le programme ci-dessus, nous obtiendrons le résultat suivant.

<0.29.0>"hello" "process"

Regardons maintenant les autres fonctions disponibles avec les processus.

Sr.No. Méthodes et description
1

is_pid

Cette méthode est utilisée pour déterminer si un identifiant de processus existe.

2

is_process_alive

Ceci est appelé comme is_process_alive (Pid). Un Pid doit faire référence à un processus au niveau du nœud local.

3

pid_to_list

Il convertit un identifiant de processus en liste.

4

inscrit

Renvoie une liste avec les noms de tous les processus enregistrés.

5

soi

L'un des BIF les plus couramment utilisés, renvoie le pid des processus appelants.

6

S'inscrire

Ceci est utilisé pour enregistrer un processus dans le système.

sept

où se trouve

Il est appelé whereis (Nom). Renvoie le pid du processus qui est enregistré avec le nom.

8

se désinscrire

Ceci est utilisé pour désenregistrer un processus dans le système.