Erlang - Procesy

Ziarnistość współbieżności w Erlang to proces. Proces to czynność / zadanie, które działa jednocześnie z innymi procesami i jest od nich niezależne. Te procesy w Erlang różnią się od procesów i wątków, które większość ludzi zna. Procesy Erlang są lekkie, działają w izolacji (pamięci) od innych procesów i są planowane przez maszynę wirtualną (VM) firmy Erlang. Czas tworzenia procesu jest bardzo krótki, ślad pamięciowy właśnie utworzonego procesu jest bardzo mały, a jedna maszyna wirtualna Erlang może mieć miliony uruchomionych procesów.

Proces tworzony jest za pomocą metody spawn. Ogólna składnia metody jest podana poniżej.

Składnia

spawn(Module, Name, Args)

Parametry

  • Module - To jest predefiniowana wartość atomu, która musi być? MODUŁEM.

  • Name - To jest nazwa funkcji, która ma zostać wywołana podczas definiowania procesu.

  • Args - To są argumenty, które należy przesłać do funkcji.

Wartość zwracana

Zwraca identyfikator procesu nowo utworzonego procesu.

Na przykład

Przykład metody spawn przedstawiono w poniższym programie.

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

Na temat powyższego programu należy zwrócić uwagę na następujące kwestie.

  • Funkcja nazywana call jest zdefiniowana i zostanie użyta do utworzenia procesu.

  • Metoda spawn wywołuje funkcję call z parametrami hello i process.

Wynik

Po uruchomieniu powyższego programu otrzymamy następujący wynik.

<0.29.0>"hello" "process"

Przyjrzyjmy się teraz innym funkcjom, które są dostępne w procesach.

Sr.No. Metody i opis
1

is_pid

Ta metoda służy do określenia, czy istnieje identyfikator procesu.

2

is_process_alive

Nazywa się to jako is_process_alive (Pid). Pid musi odnosić się do procesu w węźle lokalnym.

3

pid_to_list

Konwertuje identyfikator procesu na listę.

4

zarejestrowany

Zwraca listę z nazwami wszystkich zarejestrowanych procesów.

5

samego siebie

Jeden z najczęściej używanych BIF, zwraca pid procesów wywołujących.

6

zarejestrować

Służy do rejestracji procesu w systemie.

7

gdzie jest

Nazywa się whereis (nazwa). Zwraca pid procesu zarejestrowanego pod nazwą.

8

wyrejestruj

Służy do wyrejestrowania procesu w systemie.