Erlang - Processos

A granularidade da simultaneidade em Erlang é um processo. Um processo é uma atividade / tarefa executada simultaneamente e independente de outros processos. Esses processos em Erlang são diferentes dos processos e threads com os quais a maioria das pessoas está familiarizada. Os processos Erlang são leves, operam em isolamento (memória) de outros processos e são programados pela Máquina Virtual (VM) de Erlang. O tempo de criação do processo é muito baixo, o consumo de memória de um processo recém-gerado é muito pequeno e uma única VM Erlang pode ter milhões de processos em execução.

Um processo é criado com a ajuda do método de spawn. A sintaxe geral do método é fornecida abaixo.

Sintaxe

spawn(Module, Name, Args)

Parâmetros

  • Module - Este é um valor de átomo predefinido que deve ser? MODULE.

  • Name - Este é o nome da função a ser chamada quando o processo é definido.

  • Args - Esses são os argumentos que precisam ser enviados para a função.

Valor de retorno

Retorna o id do processo do novo processo criado.

Por exemplo

Um exemplo do método de geração é mostrado no programa a seguir.

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

As seguintes coisas precisam ser observadas sobre o programa acima.

  • Uma função chamada call é definida e será usada para criar o processo.

  • O método spawn chama a função call com os parâmetros hello e process.

Resultado

Quando executamos o programa acima, obteremos o seguinte resultado.

<0.29.0>"hello" "process"

Agora, vamos examinar as outras funções disponíveis com os processos.

Sr. Não. Métodos e Descrição
1

is_pid

Este método é usado para determinar se existe uma identificação de processo.

2

is_process_alive

Isso é chamado de is_process_alive (Pid). Um Pid deve se referir a um processo no nó local.

3

pid_to_list

Ele converte uma identificação de processo em uma lista.

4

registrado

Retorna uma lista com os nomes de todos os processos registrados.

5

auto

Um dos BIF mais comumente usados, retorna o pid dos processos de chamada.

6

registro

Isso é usado para registrar um processo no sistema.

7

Onde é

É denominado whereis (Nome). Retorna o pid do processo que está registrado com o nome.

8

cancelar o registro

Isso é usado para cancelar o registro de um processo no sistema.