2013-03-17 36 views

回答

2

顧名思義,RPC(遠程過程調用)是一個構建物,以調用一個遠程節點上的功能(和得到的結果)。

端口(Erlang中)是一個簡單的通信點,甚至沒有(一定)到遠程節點。您可以使用端口,例如與另一個(非Erlang)程序進行通信。

兩個構建有不同的用途。沒有人會更好,他們完全不同。如果你願意,rpc比端口的抽象級別更高,但這並不會讓它變得更好或更糟。

+0

@why不是一個真正的更高的抽象層。一個rpc,雖然是一個NIF,就像一個*函數調用*,而一個端口的行爲像一個*進程*。 rpc是順序的並且阻塞,而端口是併發的和非阻塞的。它告訴你什麼時候你會用另一個。 – rvirding 2013-03-18 07:59:12

+0

你一般是正確的。然而,有些人認爲同步函數調用是一個更高的抽象,因爲併發是一個可以抽象的惡意細節。 – Matthias 2013-03-18 08:17:24

+0

視圖考慮併發稍顯陌生一點是什麼Erlang是一回事,當然容錯性。 – rvirding 2013-03-18 08:45:37