2013-03-17 38 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