[发明专利]一种利用自扩展的阻塞算法将同步服务调用转换为异步并行式调用的方法无效
申请号: | 201210337286.3 | 申请日: | 2012-09-06 |
公开(公告)号: | CN103164273A | 公开(公告)日: | 2013-06-19 |
发明(设计)人: | 黄智彬;汤湛成;丁保剑 | 申请(专利权)人: | 佳都新太科技股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/38 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510665 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 扩展 阻塞 算法 同步 服务 调用 转换 异步 并行 方法 | ||
1.一种利用自扩展的阻塞算法将同步服务调用转换为异步并行式调用的方法,其特征在于将长耗时阻塞的同步服务任务划分为独立子服务并在不同的线程上执行,提高服务的吞吐量,在面向可拆分的批量服务请求时,能异常分批地并行加速处理,保证可靠的限时响应;
本转换方法分为服务分发并阻塞等待、资源服务调用、应答唤醒并归并返回三个步骤;
其中,第一步骤是服务分发并阻塞等待,单线程的,
当有请求进入调用Web服务方法,主调线程将根据已定义的策略将服务方法及数据包分拆,并dispatch分发起独立资源服务调用,然后主线程进入限时阻塞等待;
第二步骤是资源服务调用,多线程并行,
子线程执行资源服务调用,异步并行地进行,并将执行结果封装为应答消息返回;
第三步骤是应答唤醒并归并返回,单线程的,
专门的接收线程接收应答并归并,唤醒被阻塞的主调线程并返回归并的结果。利用同步对象的等待通知功能,使主调用线程能够在分拆并dispatch送出资源服务请求之后挂起,应答到来之际被唤醒;
如果调用过程,某个资源服务失败或者超时,异常将会被抛出,并会唤醒被阻塞的主线程并返回超时结果,以保证限时响应。
2.根据权利要求1所述的方法,其特征在于,还包括:同步到异步的转换机制,用于:实现同步端与异步端的交互转换,使同步服务调用对请求者透明;
所述同步端,对应权利要求1所述之第一步骤所处端,是指同步服务调用主线程,在请求进入时获取登记等待对象(Waitable object),再进行服务分发后invoke可Waitable对象进行阻塞等待;
所述异步端,对应权利要求1所述之第三步骤所处端,是指多线程调用资源服务后,并单线程接收调用结果,并作wake up应答返回予主调线程;
同步的一端必然是用等待对象池(Waitable pool),将请求分拆入队列,再由定制的分发策略dispatch送出资源服务请求之后挂起,期待应答在一定时间内返回;
异步的一端必然是专门的消息接收单线程,接收资源服务调用结果,并将其归并封装为应答消息返回;
中间的资源服务,采用异步并行的方式,多线程地调用。
3.根据权利要求2所述的方法,其特征在于,还包括:自扩展的阻塞算法,一种扩展实现的同步对象的等待通知算法,用于:实现权利要求2中所述的同步到异步的转换机制,对调用者线程进行阻塞等待与应答唤醒;
本发明实现的上述算法,是基于语言底层的同步原语实现的,在其上封装而成,抽象出来,就是getOrWaitforNewPacket和postAndNotify两个接口;对同步对象,采用Map的缓存结构保存所有已分配的正在阻塞等待的Waitable对象,供转换使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于佳都新太科技股份有限公司,未经佳都新太科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210337286.3/1.html,转载请声明来源钻瓜专利网。