English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
spawn(Module, Name, Args)
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.
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úmero | Métodos y descripciones |
---|---|
1 | Este método se usa para determinar si el id de proceso existe. |
2 | Se llama is_process_alive(Pid). Un Pid debe referirse a un proceso en el nodo local. |
3 | Se convierte el pid en una lista. |
4 | Devuelve una lista con los nombres de todos los procesos registrados. |
5 | Uno de los BIF más comunes, devuelve el pid del proceso que llama. |
6 | Usado para registrar un proceso en el sistema. |
7 | Se llama whereis (Nombre). Devuelve el pid del proceso registrado con ese nombre. |
8 | Usado para desregistrarse de los procesos del sistema. |