[发明专利]通讯任务处理方法、装置、设备及存储介质在审
申请号: | 202010655661.3 | 申请日: | 2020-07-07 |
公开(公告)号: | CN111796949A | 公开(公告)日: | 2020-10-20 |
发明(设计)人: | 刘均;王申材 | 申请(专利权)人: | 深圳市元征科技股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/48 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 陈彦如 |
地址: | 518000 广东省深圳市龙*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通讯 任务 处理 方法 装置 设备 存储 介质 | ||
本申请公开的通讯任务处理方法中,通过双线程处理通讯任务,在第一线程中接收通讯任务并添加处理状态,在第二线程中通过改变状态来执行消息发送和接收的过程,消息发送后,不用阻塞等待响应消息,一旦有消息响应,以事件方式触发状态改变,不占用线程等待时间,由于不同的通讯任务的响应消息时间不确定,此方式可以同时等待各自的响应消息,在通讯协议中存在多个通讯任务时,该方法可以快速、高效的处理消息的发送和响应;同时当两个线程中没有通讯任务执行的时候,线程处于等待状态,所以循环不会占用CPU系统资源。本申请还提供了一种通讯任务处理装置、设备及可读存储介质,具有上述有益效果。
技术领域
本申请涉及电子技术领域,特别涉及一种通讯任务处理方法、装置、设备及可读存储介质。
背景技术
D-PDU(Diagnostic protocol data unit诊断协议数据单元应用程序接口)创建多个通讯任务后,通讯任务缓冲区会相应地保存多个任务的数据,目前其使用单线程排消息队列的方式处理通讯任务,通讯任务在处理过程中可能会需要等待响应消息,单个任务耗时较长,还会导致后创建的通讯任务会因为先创建的通讯任务需要等待响应消息而延迟,在通讯任务多时,通讯效率极低。
鉴于此,如何提升D-PDU通讯任务处理效率,是目前本领域技术人员需要重点关注的。
发明内容
有鉴于此,本申请的目的在于提供一种通讯任务处理方法、装置、设备及可读存储介质,用于解决在多个通讯任务排队时,同时等待处理响应消息导致的效率低的问题,可以实现快速响应多个通讯任务消息的发送和接收,保证消息快速性、准确性和高效性。其具体方案如下:
第一方面,本申请公开了一种基于计算机设备的通讯任务处理方法,包括:
创建第一线程以及第二线程;
若所述第一线程检测到存在通讯任务添加到通讯任务队列,向所述通讯任务中添加处理状态后,将所述通讯任务添加至所述第二线程的内部缓冲区中;
所述内部缓冲区不为空时,所述第二线程轮询所述内部缓冲区中通讯任务的所述处理状态,若所述通讯任务待执行,则根据所述处理状态执行相应的任务处理操作,并更新所述处理状态;若所述通讯任务非待执行,则轮询下一个通讯任务。
可选地,在将所述通讯任务添加至所述第二线程的内部缓冲区中之前,还包括:
判断所述通讯任务是否为周期任务;
若否,则执行将所述通讯任务添加至所述第二线程的内部缓冲区中的步骤;
若是,则在执行将所述通讯任务添加至所述第二线程的内部缓冲区中的步骤的同时,为所述通讯任务创建并触发定时器;当所述定时器周期性唤醒时,记录周期次数,并执行将所述通讯任务添加至所述第二线程的内部缓冲区中的步骤,直至所述通讯任务结束或被取消。
可选地,若所述第一线程检测到存在通讯任务添加到通讯任务队列,向所述通讯任务中添加处理状态后,将所述通讯任务添加至所述第二线程的内部缓冲区中,包括:
若所述第一线程检测到存在通讯任务添加到通讯任务队列,向所述通讯任务中添加处理状态后,将待执行的所述通讯任务添加至所述第二线程的内部缓冲区中。
可选地,所述处理状态,包括:发送状态、等待状态、接收响应状态、超时状态以及已完成状态。
可选地,所述内部缓冲区不为空时,所述第二线程轮询所述内部缓冲区中通讯任务的所述处理状态,若所述通讯任务待执行,则根据所述处理状态执行相应的任务处理操作,并更新所述处理状态;若所述通讯任务非待执行,则轮询下一个通讯任务,包括:
所述内部缓冲区不为空时,所述第二线程轮询所述内部缓冲区中通讯任务的所述处理状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市元征科技股份有限公司,未经深圳市元征科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010655661.3/2.html,转载请声明来源钻瓜专利网。