2017-02-04 13 views
1

これらのエリクシールモジュールは多かれ少なかれErlangの機能を包むだけなので、この質問には「Erlang」とタグ付けされています。エリクサーでは、ノードとプロセスの違いは何ですか?

ノードは名前付きプロセスのようです。機能を同時に実行したり、他のノードにリンクしたり、プロセス監督者のように行動したりすることができます。各モジュールの機能の多くは同じであると思われ、類似点が強化されています。

ノードモジュールの値は何ですか?プロセスが提供していないことは何を提供していますか?

答えて

6

ノードは名前付きプロセスのようです。

あなたはNodeが何であるか誤解しているようです。ノードはErlang VMのインスタンスであり、1つのオペレーティングシステムプロセスとして実行されます。 Erlangプロセスは、オペレーティングシステムのスレッドに似ていますが、より軽いユニットを実行するユニットです。 Erlangプロセスは、オペレーティングシステム上で動作するオペレーティングシステムプロセスと同様に、Erlangノード上で動作します。 ErlangプロセスはErlangノードなしでは実行できません。

+0

うんの切断を強制し、私はそれをキャッチしていません。ありがとうございました。私はお互いに話をするために、同じVM上にいる必要があると考えていました。今、私はなぜ異なったインスタンスがお互いに話すことができるのか、そしてどのように理解する必要があります。 – steel

1

これは2つの異なる概念です。ノードはErlang仮想マシンのインスタンスであり、プロセスは仮想マシン内で実行される非常に軽量のスレッドです。ここ

documentationによれば、エリクサープロセスの定義である:

エリクサーで

、すべてのコードが内部処理を実行します。プロセスは互いに分離されており、互いに並行して実行され、 メッセージの受け渡しを介して通信します。プロセスは エリクシールの並行性の基盤であるだけでなく、分散型のフォールトトレラントプログラムを構築するための手段も提供します。

エリクシルのプロセスをオペレーティングシステムのプロセスと混同しないでください。エリクサーのプロセスは、メモリとCPU(多くの他のプログラミング言語ではスレッドとは異なります)の点では非常に軽量です( )。

ノードは、Erlang仮想マシンの表現です。ここnodeモジュールの機能のいくつかの例です:

生きている()

戻り値は、真のローカルノードが

確立する(ノード)を接続

生きていますか?ノードへの接続

disconnecトン(ノード)

はノード

関連する問題