亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Erlang分布式節(jié)點中的注冊進程使用實例

 更新時間:2015年02月09日 09:56:56   投稿:junjie  
這篇文章主要介紹了Erlang分布式節(jié)點中的注冊進程使用實例,本文直接給出實例代碼,需要的朋友可以參考下

上一篇文章中說到, 注冊進程關聯(lián)的原子具有全局作用域, 這里的全局指的是當前 Erlang 虛擬機, 在分布式中, 便是當前分布式節(jié)點. 因此, 在一個節(jié)點中注冊進程關聯(lián)的原子, 在另一個節(jié)點中是不能直接使用, 而必須配和目標節(jié)點使用.

復制代碼 代碼如下:

{RegName, Node} ! {messages}.

例子

先啟動一個 Server 節(jié)點

復制代碼 代碼如下:

erl -sname server

然后在 Erlang Shell 中操作

先簡單介紹幾個常用函數(shù)

復制代碼 代碼如下:

% 查看當前節(jié)點
node().
% => 'server@Gentoo-PC'

% 查看所有已連接的節(jié)點
nodes().
% => []                                        % 此時還未連接其它節(jié)點

% 查看當前節(jié)點是否存活
is_alive().
% => true


然后進入正題
復制代碼 代碼如下:

% 啟動上一篇文章中最后的那個程序
test:start().
% Waiting for new message.
% => true

% 當前節(jié)點可以使用 testp 原子
testp ! message.
% New message: message
% Waiting for new message.
% => message


然后啟動另外一個 Client 節(jié)點
復制代碼 代碼如下:

erl -sname client

在新的 Erlang Shell 中
復制代碼 代碼如下:

nodes().
% => []                                         % 此時未連接節(jié)點

% 當前節(jié)點無法直接使用這個原子的
testp ! {}.
% ** exception error: bad argument
%      in operator  !/2
%         called as testp ! {}

% 需要配合目標節(jié)點一起使用
{testp, 'server@Gentoo-PC'} ! {}.
% => {}                                         % 語句返回值


此時, server 節(jié)點就會接收到消息, 并打印出
復制代碼 代碼如下:

% New message: {}
% Waiting for new message.

節(jié)點間首次連接后, 兩個節(jié)點將會保持連接

在 Client 節(jié)點中

復制代碼 代碼如下:

nodes().
% => ['server@Gentoo-PC']

在 Server 節(jié)點中
復制代碼 代碼如下:

nodes().
% => ['client@Gentoo-PC']

結尾

當然, 這只是個方法, 由于在模塊中定義了 call 函數(shù)包裹了起來, 所以可以使用遠程調(diào)用, 調(diào)用 Server 節(jié)點上的 test:call 方法.

可以使用 rpc 模塊中的 call/4 方法遠程調(diào)用函數(shù)

復制代碼 代碼如下:

% 在 Node 節(jié)點上執(zhí)行 apply(Module, Function, Args)
% 調(diào)用成功時返回 Result, 調(diào)用失敗時返回 {badrpc, Reason}
-spec rpc:call(Node, Module, Function, Args} -> Result | {badrpc, Reason}

在 Client 節(jié)點中
復制代碼 代碼如下:

rpc:call('server@Gentoo-PC', test, call, ['message from other node']).

相關文章

  • Erlang中的映射組Map詳細介紹

    Erlang中的映射組Map詳細介紹

    這篇文章主要介紹了Erlang中的映射組Map詳細介紹,本文講解了創(chuàng)建映射組、更新映射組、兩種操作符的區(qū)別、映射的增加、刪除、獲取等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Erlang中的函數(shù)與流程控制介紹

    Erlang中的函數(shù)與流程控制介紹

    這篇文章主要介紹了Erlang中的函數(shù)與流程控制介紹,本文先是講解了函數(shù)的一些知識,然后講解了case語句和if語句及算術表達式等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • Erlang中遍歷取出某個位置的最大值代碼

    Erlang中遍歷取出某個位置的最大值代碼

    這篇文章主要介紹了Erlang中遍歷取出某個位置的最大值代碼,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • Erlang實現(xiàn)的百度云推送Android服務端實例

    Erlang實現(xiàn)的百度云推送Android服務端實例

    這篇文章主要介紹了Erlang實現(xiàn)的百度云推送Android服務端實例,本文先是講解了實現(xiàn)步驟,然后給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-01-01
  • Erlang中執(zhí)行l(wèi)inux命令的兩種方法

    Erlang中執(zhí)行l(wèi)inux命令的兩種方法

    這篇文章主要介紹了Erlang中執(zhí)行l(wèi)inux命令的兩種方法,本文著重講解了erlang:open_port的使用,需要的朋友可以參考下
    2015-01-01
  • CentOS 6.5源碼安裝Erlang教程

    CentOS 6.5源碼安裝Erlang教程

    這篇文章主要介紹了CentOS 6.5源碼安裝Erlang教程,本文講解了源碼編譯安裝的過程和遇到的一些錯誤處理方法,需要的朋友可以參考下
    2015-01-01
  • Erlang中的注冊進程使用實例

    Erlang中的注冊進程使用實例

    這篇文章主要介紹了Erlang中的注冊進程使用實例,本文給出正常進程通信實例和使用使用注冊進程通信實例,需要的朋友可以參考下
    2015-02-02
  • Erlang初學:Erlang的一些特點和個人理解總結

    Erlang初學:Erlang的一些特點和個人理解總結

    這篇文章主要介紹了Erlang初學:Erlang的一些特點和個人理解總結,本文總結了函數(shù)式編程、一切都是常量、輕量進程、進程端口映射及典型缺點等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Erlang IO編程之文件目錄操作常用方法小結

    Erlang IO編程之文件目錄操作常用方法小結

    這篇文章主要介紹了Erlang IO編程之文件目錄操作常用方法小結,本文講解了常用的文件操作如打開文件、讀取文件、寫入文件、刪除文件等,需要的朋友可以參考下
    2015-01-01
  • Erlang項目內(nèi)存泄漏分析方法

    Erlang項目內(nèi)存泄漏分析方法

    這篇文章主要介紹了Erlang項目內(nèi)存泄漏分析方法,本文講解了分析方法、分析流程并找到問題原因和解決方法,需要的朋友可以參考下
    2015-02-02

最新評論