[101]技术-回调和监听

2017-12-27  本文已影响0人  shawnxjf

关于回调

在多线程中,如果不想让threadA阻塞那么一个很好的办法是另外开一个线程threadB。但是此时想获得threadB的执行结果怎么办呢? 那么我们把threadA对应的事件注册到threadB,当threadB跑完任务可以回调通知线程A。回调是异步机制的一种很好方式,在多线程多进程中经常采用。
如下部署了两个服务client服务(进程)server服务(进程),其两者如何协调通讯。大体逻辑是client请求server时异步请求,同时把client埋点到server中(注册到server中),当server请求处理完成后触发埋点(这样,当server处理清楚需要比较长的时间时,client不需要等待)。
其逻辑图如下:


image.png

关于监听

观察者(监听器)模式:there is One-to-many objects,if one object modified,all dependent objects are notified automatically.

具体代码:

Main(){
   new father();//如果father有其他事,另起一个线程执行。
   new son().registerListener(father);
   son.wakeup();
}
Class Son{
  Wakeup()
  { 
    //Father...come in
    father.do();
  }
}
Class Father{
   do()
   {
     // take care children
   }
}
上一篇下一篇

猜你喜欢

热点阅读