rpc远程调用一些看法

本地过程调用都是同步的,但是,线程被认为是某种形式的异步调用:一个函数被pthread_create调用,看起来是一起执行,但是调用者需通过pthread_join等待这个线程结束。远程过程调用(RPC)通过门实现,在进程内看,门是描述符标示的,在进程外,门是用文件系统中的路径标示。

与回调有啥不同?

在服务器端,先创建门,传入的是要异步调用的函数指针,返回的是门的标示描述符。使用前面说的路径关联门的标示句柄。。在客户端打开此门,传入的是路径,返回的是此门的标示句柄,之后的调用就是通过这个句柄完成。

如果有多个客户端请求服务器怎么办?

实质上服务器调用door_create创建的返回的描述符只是算作一个引用,创建一下引用数加1.而原本的描述符在服务器进程会一直打开着。客户端打开的描述符也算作一个打开的引用,直到描述符被关闭。调用完引用数减1....

....

你可能感兴趣的:(linux,编程)