[发明专利]一种不阻塞线程等待异步消息的方法、系统、服务器及存储介质在审

专利信息
申请号: 201910025492.2 申请日: 2019-01-11
公开(公告)号: CN111435314A 公开(公告)日: 2020-07-21
发明(设计)人: 刘迟 申请(专利权)人: 武汉瓯越网视有限公司
主分类号: G06F9/48 分类号: G06F9/48;G06F9/54
代理公司: 武汉河山金堂专利事务所(普通合伙) 42212 代理人: 胡清堂;陈懿
地址: 430000 湖北省武汉市东湖新技术开*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 阻塞 线程 等待 异步 消息 方法 系统 服务器 存储 介质
【说明书】:

发明涉及一种不阻塞线程等待异步消息的方法、系统、服务器及存储介质,通过任务队列循环机制和回调通知机制,实现同步且不阻塞的线程工作模式。能保证线程在异步消息到来之前不会继续执行当前调用栈,并且不会造成无响应状态,实现方式简单,不与当前线程具体业务逻辑耦合。

技术领域

本发明涉及软件工程领域,具体涉及一种不阻塞线程等待异步消息的方法、系统、服务器及存储介质。

背景技术

线程阻塞是线程在执行耗时操作时处于无响应状态,无法处理线程中其他任务。异步函数是执行函数调用后立即返回,但操作的结果在未来某个时刻通知调用方。

程序的运行实际是由若干线程完成的,这其中包括主线程和其他工作线程。线程有时需要等待某个异步函数调用结果后再继续运行当前调用栈,而这些异步函数结果是在未来某个不确定时间返回的,这就导致线程需要处于等待状态,而该过程会造成该线程阻塞无响应。

现有办法首先在异步消息来临时再执行线程的后续操作,该方法存在后续操作不易封装界定的问题,同时也将增大线程逻辑和异步函数的耦合,且短暂容忍线程阻塞。

发明内容

鉴于现有技术存在的问题,本发明的目的是提供一种不阻塞线程等待异步消息的方法、系统、服务器及存储介质,结合任务队列循环机制和回调通知机制,实现同步且不阻塞的线程工作模式。

为了实现上述目的,本发明采用的技术方案为一种不阻塞线程等待异步消息的方法,所述方法包括以下步骤:

S1、在线程中创建任务队列TaskQueue,所述任务队列中设有节点将线程中需要执行的各类任务进行封装,所述各类任务被封装为函数对象Task;

S2、线程开启后创建第一循环函数查找所述任务队列中待执行的Task,并进行执行;

S3、任务列表中执行任一Task时若需要调用异步函数,则在异步函数被调用前,创建互斥对象,开始执行异步函数时,运用互斥对象进行标记;

S4、在异步函数调用后,创建第二循环函数,通过第二循环函数调用互斥对象进行判断异步函数是否执行完毕,若异步函数未执行完毕,则获取线程任务队列,继续执行步骤S2,若执行完毕,则停止第二循环函数,继续执行调用栈的后续操作。

在上述技术方案中,所述步骤S2中线程中若未找到待执行Task,则进入休眠状态,等待新的Task。

在上述技术方案中,所述步骤S3标记异步函数包括以下步骤:

S31、在异步函数调用前,通过调用互斥对象中Lock函数进行加锁,即标记异步函数开始执行;

S32、当异步函数执行结束后,回调通知消息中调用互斥对象中的UNLock函数进行解锁,即标记异步函数执行完毕。

在上述技术方案中,所述步骤S4通过调用互斥对象中的Try Lock函数,进行非阻塞的判断异步函数是否执行完毕。

在上述技术方案中,判断异步函数执行完毕包括以下步骤:

S41、若Try Lock函数返回False,则表示异步函数尚未执行完毕;

S42、若Try Lock函数返回True,则表示异步函数执行完毕。

本发明还公开一种不阻塞线程等待异步消息的系统,所述系统包括创建模块、查找模块、标记模块以及执行模块;

创建模块,用于在线程中创建任务队列TaskQueue,所述任务队列中设有节点将线程中需要执行的各类任务进行封装,所述各类任务被封装为函数对象Task;

查找模块,用于线程开启后创建第一循环函数查找所述任务队列中待执行的Task,并进行执行;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉瓯越网视有限公司,未经武汉瓯越网视有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910025492.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top