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 | Este método é usado para determinar se existe uma identificação de processo. |
2 | Isso é chamado de is_process_alive (Pid). Um Pid deve se referir a um processo no nó local. |
3 | Ele converte uma identificação de processo em uma lista. |
4 | Retorna uma lista com os nomes de todos os processos registrados. |
5 | Um dos BIF mais comumente usados, retorna o pid dos processos de chamada. |
6 | Isso é usado para registrar um processo no sistema. |
7 | É denominado whereis (Nome). Retorna o pid do processo que está registrado com o nome. |
8 | Isso é usado para cancelar o registro de um processo no sistema. |