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.