English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Processus Erlang

La granularité de la concurrence dans Erlang est un processus. Un processus est une activité qui s'exécute en même temps qu'autres processus et est indépendante des autres processus./Tâche. Les processus dans Erlang diffèrent des processus et des threads familiers à la plupart des gens. Les processus Erlang sont légers, exécutent en isolation avec d'autres processus (mémoire) et sont planifiés par le VM (Virtual Machine) Erlang. Le temps de création des processus est très court, et la mémoire utilisée par les processus générés est très petite. Un seul VM Erlang peut exécuter des millions de processus.

Créer un processus à l'aide de la méthode spawn. La syntaxe générale de cette méthode est la suivante.

Syntaxe

spawn(Module, Nom, Args)

Paramètres

  • Module −C'est une valeur atomique prédéfinie, qui doit être ?MODULE.

  • Nom −C'est le nom de la fonction à appeler lors de la définition du processus.

  • Args −Ces sont les paramètres à envoyer à la fonction.

Valeur de retour

Retourne l'ID de processus créé.

Le programme suivant montre un exemple de la méthode spawn.

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

Il faut noter les points suivants concernant le programme susmentionné.

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

  • La méthode spawn utilise les paramètres hello et process pour appeler la fonction call.

Résultat de la sortie

Lorsque nous exécutons le programme ci-dessus, nous obtenons les résultats suivants.

<0.29.0>"hello" "process"

Maintenant, regardons les autres fonctionnalités disponibles pour le processus.

NuméroMéthode et description
1

is_pid

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

2

is_process_alive

C'est ce qui s'appelle is_process_alive(Pid). Un Pid doit faire référence à un processus sur un nœud local.

3

pid_to_list

Il convertit l'identifiant de processus en liste.

4

registered

Retourne une liste contenant les noms de tous les processus enregistrés.

5

self

L'un des BIF les plus courants, retourne le pid du processus appelant.

6

register

Utilisé pour enregistrer un processus dans le système.

7

whereis

Il est appelé whereis (Nom). Retourne le pid du processus enregistré sous ce nom.

8

unregister

Utilisé pour désenregistrer un processus dans le système.