亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Erlang 進程

Erlang中的并發(fā)粒度是一個過程。流程是與其他流程同時運行并獨立于其他流程的活動/任務(wù)。Erlang中的這些過程與大多數(shù)人所熟悉的過程和線程不同。Erlang進程是輕量級的,與其他進程(內(nèi)存)隔離運行,并且由Erlang的虛擬機(VM)調(diào)度。進程的創(chuàng)建時間非常短,剛生成的進程的內(nèi)存占用非常小,單個Erlang VM可以運行數(shù)百萬個進程。

借助spawn方法創(chuàng)建一個進程。該方法的一般語法如下。

語法

spawn(Module, Name, Args)

參數(shù)

  • Module ?這是預(yù)定義的原子值,必須為?MODULE。

  • Name ?這是定義流程時要調(diào)用的函數(shù)的名稱。

  • Args ?這些是需要發(fā)送給函數(shù)的參數(shù)。

返回值

返回創(chuàng)建的新流程的流程ID。

以下程序顯示了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]).

關(guān)于上述程序,需要注意以下幾點。

  • 定義了一個稱為call的函數(shù),該函數(shù)將用于創(chuàng)建過程。

  • spawn方法使用參數(shù)hello和process調(diào)用call函數(shù)。

輸出結(jié)果

當(dāng)我們運行上面的程序時,我們將得到以下結(jié)果。

<0.29.0>"hello" "process"

現(xiàn)在,讓我們看一下進程可用的其他功能。

序號方法與說明
1

is_pid

此方法用于確定進程id是否存在。

2

is_process_alive

這被稱為is_process_alive(Pid)。一個Pid必須引用本地節(jié)點上的一個進程。

3

pid_to_list

它將進程 id 轉(zhuǎn)換為列表。

4

registered

返回包含所有已注冊進程的名稱的列表。

5

self

最常用的 BIF 之一,返回調(diào)用進程的 pid。

6

register

用于在系統(tǒng)中注冊一個進程。

7

whereis

它被稱為 whereis (Name)。返回用該名稱注冊的進程的 pid。

8

unregister

用于注銷系統(tǒng)中的進程。