http://safalsoft.com/dabao/292/

应用Semaphore信号量来完成等待处理

  2). 87行,生成一个动态代办署理对象,动态代办署理对象主动实现了IHello接口

  8). 从734行起头,颠末了一个漫长的挪用链。在挪用过程中,利用了Promise对象,调then方式,添加了回调处置。这些回调是rpc成果从办事器前往时要施行的操作。

  1). 84行,生成一个hprose客户端实例,这个实例将与办事器毗连,完成rpc挪用。

  1). 设想一个接口IHello,然后生成一个动态代办署理对象,再挪用动态代办署理对象的方式来完成rpc挪用。rpc挪用只能通过如许一种体例来完成吗?

  534行调encode方式,将挪用参数打包进一个流中,这个打包是若何完成的?

  添加回调时,调了Promise的catchError()方式,用来处置非常。之前假设rpc挪用不会发生非常,万一发生了非常,错误处置流程又是如何的?

  颠末前面的阐发晓得,Promise对象形成了一个奇异的链表,办事器前往的数据恰是通过这个链表来传送给挪用者的。

  10). 办事器无数据前往后,就会通过第8)中建立的Promise链,来完成rpc挪用成果数据的传送。

  9). 颠末漫长的挪用链后,rpc挪用线程,便进入了期待形态,直到办事器无数据前往。

  4). 动态代办署理对象的hello方式,将施行流程转到由Service()方式设置的回调,即:

  书接上回。本篇简要回首之前的内容,串联提到过的工具,并提出一些问题。挪用示例:

  期待是通过第6回所说的PromiseFuture来实现的,使用Semaphore信号量来完成期待处置。java代码打包

  以上疑问,之后将逐个阐发。为了不影响主线,先将这些疑问弃捐。接下来看办事器端若何处置rpc挪用,但办事器处置之前,需要先收到挪用数据。数据是由客户端发送过来的,发送前,要先打包,这个打包过程如何?又是由谁完成的?

  11). 数据一步步传到9)中的PromiseFuture实例,添加了信号量值,使得rpc挪用线). 成果进一步传到动态代办署理对象。