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

Процессы Erlang

Онлайн-инструменты

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

Синтаксис

spawn(Module, Name, Args)

Параметры

  • Module −Это предопределенный атомарный значения, должно быть ?MODULE.

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

  • Args −Эти являются параметрами, которые необходимо передать функции.

Возвратное значение

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

Ниже приведен пример использования метода 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]).

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

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

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

Результат вывода

Когда мы запустим上面的 программу, мы получим следующий результат.

<0.29.0>"hello" "process"

Теперь让我们看看进程 доступные другие функции.

НомерМетоды и описание
1

is_pid

Этот метод используется для определения того, существует ли pid.

2

is_process_alive

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

3

pid_to_list

Это преобразует pid в список.

4

registered

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

5

self

Один из самых常用的 BIF, возвращает pid вызываемого процесса.

6

register

Для регистрации процесса в системе.

7

whereis

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

8

unregister

Для注销 процесса в системе.