Erlang - Prozesse
Die Granularität der Parallelität in Erlang ist ein Prozess. Ein Prozess ist eine Aktivität / Aufgabe, die gleichzeitig mit den anderen Prozessen ausgeführt wird und von diesen unabhängig ist. Diese Prozesse in Erlang unterscheiden sich von den Prozessen und Threads, mit denen die meisten Menschen vertraut sind. Erlang-Prozesse sind leichtgewichtig, arbeiten in (Speicher-) Isolation von anderen Prozessen und werden von Erlang's Virtual Machine (VM) geplant. Die Erstellungszeit des Prozesses ist sehr gering, der Speicherbedarf eines gerade erzeugten Prozesses ist sehr gering und auf einer einzelnen Erlang-VM können Millionen von Prozessen ausgeführt werden.
Mit Hilfe der Spawn-Methode wird ein Prozess erstellt. Die allgemeine Syntax der Methode ist unten angegeben.
Syntax
spawn(Module, Name, Args)
Parameter
Module - Dies ist ein vordefinierter Atomwert, der? MODULE sein muss.
Name - Dies ist der Name der Funktion, die aufgerufen werden soll, wenn der Prozess definiert wird.
Args - Dies sind die Argumente, die an die Funktion gesendet werden müssen.
Rückgabewert
Gibt die Prozess-ID des neu erstellten Prozesses zurück.
Zum Beispiel
Ein Beispiel für die Spawn-Methode ist im folgenden Programm dargestellt.
-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]).
Die folgenden Dinge müssen über das obige Programm beachtet werden.
Eine Funktion namens call ist definiert und wird zum Erstellen des Prozesses verwendet.
Die Spawn-Methode ruft die Aufruffunktion mit den Parametern Hallo und Prozess auf.
Ausgabe
Wenn wir das obige Programm ausführen, erhalten wir das folgende Ergebnis.
<0.29.0>"hello" "process"
Schauen wir uns nun die anderen Funktionen an, die für Prozesse verfügbar sind.
Sr.Nr. | Methoden & Beschreibung |
---|---|
1 | is_pid Diese Methode wird verwendet, um festzustellen, ob eine Prozess-ID vorhanden ist. |
2 | is_process_alive Dies wird als is_process_alive (Pid) bezeichnet. Eine Pid muss sich auf einen Prozess am lokalen Knoten beziehen. |
3 | pid_to_list Es konvertiert eine Prozess-ID in eine Liste. |
4 | Eingetragen Gibt eine Liste mit den Namen aller registrierten Prozesse zurück. |
5 | selbst Eines der am häufigsten verwendeten BIFs gibt die PID der aufrufenden Prozesse zurück. |
6 | registrieren Dies wird verwendet, um einen Prozess im System zu registrieren. |
7 | wo ist Es heißt whereis (Name). Gibt die PID des Prozesses zurück, der mit dem Namen registriert ist. |
8 | abmelden Dies wird verwendet, um die Registrierung eines Prozesses im System aufzuheben. |