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

Proceso de Erlang

La escala de concurrencia en Erlang es un proceso. Un proceso es una actividad que se ejecuta al mismo tiempo con otros procesos y de manera independiente de ellos./Tareas. Los procesos en Erlang son diferentes de los procesos y hilos que la mayoría de la gente conoce. Los procesos de Erlang son ligeros, ejecutan de manera aislada de otros procesos (memoria) y son programados por la máquina virtual (VM) de Erlang. El tiempo de creación de un proceso es muy corto y el uso de memoria de un proceso recién creado es muy pequeño, un solo VM de Erlang puede ejecutar millones de procesos.

La creación de un proceso mediante el método spawn. La sintaxis general de este método es la siguiente.

Sintaxis

spawn(Module, Name, Args)

Parámetros

  • Module −Este es el valor atómico predefinido, debe ser ?MODULE.

  • Name −Este es el nombre de la función que se llama al definir el proceso.

  • Args −Estos son los parámetros que se deben enviar a la función.

Valor devuelto

ID del proceso creado

El siguiente programa muestra un ejemplo del método 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]).

Se deben tener en cuenta los siguientes puntos sobre el programa mencionado anteriormente.

  • Se define una función llamada call, que se usará para crear el proceso.

  • El método spawn usa los parámetros hello y process para llamar a la función call.

Resultados de salida

Cuando ejecutamos el programa superior, obtendremos los siguientes resultados.

<0.29.0>"hello" "process"

Ahora, veamos otras funciones disponibles para el proceso.

NúmeroMétodos y descripciones
1

is_pid

Este método se usa para determinar si el id de proceso existe.

2

is_process_alive

Se llama is_process_alive(Pid). Un Pid debe referirse a un proceso en el nodo local.

3

pid_to_list

Se convierte el pid en una lista.

4

registered

Devuelve una lista con los nombres de todos los procesos registrados.

5

self

Uno de los BIF más comunes, devuelve el pid del proceso que llama.

6

register

Usado para registrar un proceso en el sistema.

7

whereis

Se llama whereis (Nombre). Devuelve el pid del proceso registrado con ese nombre.

8

unregister

Usado para desregistrarse de los procesos del sistema.