Erlang - Процессы

Детализация параллелизма в Erlang - это процесс. Процесс - это действие / задача, которая выполняется одновременно с другими процессами и не зависит от них. Эти процессы в Erlang отличаются от процессов и потоков, знакомых большинству людей. Процессы Erlang легковесны, работают изолированно (в памяти) от других процессов и планируются виртуальной машиной (VM) Erlang. Время создания процесса очень мало, объем памяти только что созданного процесса очень мал, и на одной виртуальной машине Erlang могут выполняться миллионы процессов.

Процесс создается с помощью метода spawn. Общий синтаксис метода приведен ниже.

Синтаксис

spawn(Module, Name, Args)

Параметры

  • Module - Это предопределенное значение атома, которое должно быть? МОДУЛЬ.

  • Name - Это имя функции, которая будет вызываться при определении процесса.

  • Args - Это аргументы, которые необходимо отправить функции.

Возвращаемое значение

Возвращает идентификатор нового созданного процесса.

Например

Пример метода порождения показан в следующей программе.

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

В отношении вышеуказанной программы необходимо отметить следующее.

  • Определена функция с именем call, которая будет использоваться для создания процесса.

  • Метод spawn вызывает функцию call с параметрами hello и process.

Вывод

Когда мы запустим указанную выше программу, мы получим следующий результат.

<0.29.0>"hello" "process"

Теперь давайте посмотрим на другие функции, доступные с процессами.

Sr. No. Методы и описание
1

is_pid

Этот метод используется, чтобы определить, существует ли идентификатор процесса.

2

is_process_alive

Это называется is_process_alive (Pid). Pid должен ссылаться на процесс на локальном узле.

3

pid_to_list

Он преобразует идентификатор процесса в список.

4

зарегистрированный

Возвращает список с именами всех зарегистрированных процессов.

5

я

Один из наиболее часто используемых BIF, возвращает pid вызывающих процессов.

6

регистр

Это используется для регистрации процесса в системе.

7

где

Он называется whereis (Имя). Возвращает pid процесса, зарегистрированного с именем.

8

отменить регистрацию

Это используется для отмены регистрации процесса в системе.