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 | отменить регистрацию Это используется для отмены регистрации процесса в системе. |