Erlang-processes

提供:Dev Guides
移動先:案内検索

アーラン-プロセス

Erlangの並行性の粒度はプロセスです。 プロセスは、他のプロセスと同時に実行され、他のプロセスから独立しているアクティビティ/タスクです。 Erlangのこれらのプロセスは、ほとんどの人が使い慣れているプロセスやスレッドとは異なります。 Erlangプロセスは軽量で、他のプロセスから(メモリ)分離で動作し、Erlangの仮想マシン(VM)によってスケジュールされます。 プロセスの作成時間は非常に短く、生成されたばかりのプロセスのメモリフットプリントは非常に小さく、1つのErlang VMで何百万ものプロセスを実行できます。

プロセスは、spawnメソッドの助けを借りて作成されます。 メソッドの一般的な構文は次のとおりです。

構文

spawn(Module, Name, Args)

パラメーター

  • モジュール-これは事前定義されたアトム値で、?MODULEでなければなりません。
  • 名前-これは、プロセスが定義されたときに呼び出される関数の名前です。
  • 引数-これらは、関数に送信する必要がある引数です。

戻り値

作成された新しいプロセスのプロセス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]).

上記のプログラムについて、次のことに注意する必要があります。

  • callという関数が定義されており、プロセスの作成に使用されます。
  • spawnメソッドは、パラメーターhelloおよびprocessを使用して呼び出し関数を呼び出します。

出力

上記のプログラムを実行すると、次の結果が得られます。

<0.29.0>"hello" "process"

次に、プロセスで利用可能な他の機能を見てみましょう。

Sr.No. Methods & Description
1

is_pid

このメソッドは、プロセスIDが存在するかどうかを判断するために使用されます。

2

is_process_alive

これはis_process_alive(Pid)と呼ばれます。 Pidは、ローカルノードのプロセスを参照する必要があります。

3

pid_to_list

プロセスIDをリストに変換します。

4

registered

登録されているすべてのプロセスの名前のリストを返します。

5

self

最もよく使用されるBIFの1つで、呼び出しプロセスのpidを返します。

6

register

これは、システムにプロセスを登録するために使用されます。

7

whereis

whereis(Name)と呼ばれます。 名前で登録されているプロセスのpidを返します。

8

unregister

これは、システムでプロセスを登録解除するために使用されます。