关于回调
在多线程中,如果不想让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
}
}
网友评论