线程间通信方法、装置、电子设备及存储介质制造方法及图纸

技术编号:29132722 阅读:16 留言:0更新日期:2021-07-02 22:28
本公开关于一种线程间通信方法、装置、电子设备及存储介质,该方法包括:当执行主线程任务时,检测主线程对应的子线程是否执行完成子线程任务;若子线程执行完成子线程任务,则获取子线程任务的处理结果;若对与处理结果对应的任务执行完毕,则执行主线程任务。采用本方法,在执行主线程任务之前,先检测主线程对应的子线程是否执行完成子线程任务,并在子线程执行完成子线程任务之后,获取子线程任务的处理结果,并对与处理结果对应的任务进行处理,再处理主线程任务,避免了子线程任务的处理结果,需要等待主线程处理完所有的主线程任务之后,再返回给主线程,导致线程间的通信时间较长的缺陷,从而减少了线程间的通信时间。

【技术实现步骤摘要】
线程间通信方法、装置、电子设备及存储介质
本公开涉及通信
,尤其涉及一种线程间通信方法、装置、电子设备及存储介质。
技术介绍
随着计算机技术的发展,越来越多的任务通过线程去执行;比如,通过主线程执行一些交互任务,通过子线程执行一些耗时任务。相关技术中,目前的线程间通信方法,一般是子线程执行完耗时任务之后,将相应的任务处理结果返回给主线程,如果此时主线程还有任务没有执行完成的话,子线程的任务处理结果需要等到主线程的任务结束之后才能返回给主线程;但是,若主线程的任务较多,这个等待时间就会很久,导致线程间通信时间较长。
技术实现思路
本公开提供一种线程间通信方法、装置、电子设备及存储介质,以至少解决相关技术中线程间通信时间较长的问题。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种线程间通信方法,包括:当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务;若所述子线程执行完成所述子线程任务,则获取所述子线程任务的处理结果;若对与所述处理结果对应的任务执行完毕,则执行所述主线程任务。在一示例性实施例中,在当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务之前,还包括:获取执行所述主线程任务的任务处理指令;在所述任务处理指令中添加任务检测指令;所述任务检测指令用于检测所述子线程是否执行完成所述子线程任务。在一示例性实施例中,所述获取执行所述主线程任务的任务处理指令,包括:获取所述主线程任务的任务处理方式;获取与所述任务处理方式对应的任务处理函数,作为所述主线程任务对应的任务处理函数;将所述主线程任务对应的任务处理函数,识别为执行所述主线程任务的任务处理指令。在一示例性实施例中,所述当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务,包括:当调用所述任务处理指令执行主线程任务时,若识别到所述任务处理指令中添加有所述任务检测指令,则通过所述任务检测指令,检测所述主线程对应的子线程是否执行完成子线程任务。在一示例性实施例中,所述检测所述主线程对应的子线程是否执行完成子线程任务,包括:获取所述子线程任务对应的信号量;若所述信号量为目标信号量,则确认所述子线程执行完成所述子线程任务;所述目标信号量用于表征所述子线程任务执行完成。在一示例性实施例中,在若对所述处理结果执行完毕,则执行所述主线程任务之后,还包括:若子线程任务表中的子线程任务均执行完成,则删除所述任务处理指令中的所述任务检测指令。在一示例性实施例中,在获取所述子线程任务的处理结果之后,还包括:创建与所述处理结果对应的任务;所述与所述处理结果对应的任务的优先级高于所述主线程任务的优先级;对与所述处理结果对应的任务进行处理。在一示例性实施例中,在当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务之后,还包括:若所述子线程未执行完成所述子线程任务,则确定所述子线程任务的剩余完成时间;若所述剩余完成时间小于预设等待时间,则对所述子线程任务进行监控。在一示例性实施例中,所述确定所述子线程任务的剩余完成时间,包括:获取所述子线程任务的剩余任务;将所述子线程任务的剩余任务输入到预先训练的时间预测模型,得到所述剩余任务的完成时间,作为所述子线程任务的剩余完成时间;所述预先训练的时间预测模型用于预测输入的所述剩余任务的完成时间。根据本公开实施例的第二方面,提供一种线程间通信装置,应用于主线程,包括:任务检测单元,被配置为执行当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务;结果获取单元,被配置为执行若所述子线程执行完成所述子线程任务,则获取所述子线程任务的处理结果;任务执行单元,被配置为执行若对与所述处理结果对应的任务执行完毕,则执行所述主线程任务。在一示例性实施例中,所述装置还包括指令添加单元,被配置为执行获取执行所述主线程任务的任务处理指令;在所述任务处理指令中添加任务检测指令;所述任务检测指令用于检测所述子线程是否执行完成所述子线程任务。在一示例性实施例中,所述指令添加单元,还被配置为执行获取所述主线程任务的任务处理方式;获取与所述任务处理方式对应的任务处理函数,作为所述主线程任务对应的任务处理函数;将所述主线程任务对应的任务处理函数,识别为执行所述主线程任务的任务处理指令。在一示例性实施例中,所述任务检测单元,还被配置为执行当调用所述任务处理指令执行主线程任务时,若识别到所述任务处理指令中添加有所述任务检测指令,则通过所述任务检测指令,检测所述主线程对应的子线程是否执行完成子线程任务。在一示例性实施例中,所述任务检测单元,还被配置为执行获取所述子线程任务对应的信号量;若所述信号量为目标信号量,则确认所述子线程执行完成所述子线程任务;所述目标信号量用于表征所述子线程任务执行完成。在一示例性实施例中,所述装置还包括指令删除单元,被配置为执行若子线程任务表中的子线程任务均执行完成,则删除所述任务处理指令中的所述任务检测指令。在一示例性实施例中,所述装置还包括任务创建单元,被配置为执行创建与所述处理结果对应的任务;所述与所述处理结果对应的任务的优先级高于所述主线程任务的优先级;对与所述处理结果对应的任务进行处理。在一示例性实施例中,所述装置还包括任务监控单元,被配置为执行若所述子线程未执行完成所述子线程任务,则确定所述子线程任务的剩余完成时间;若所述剩余完成时间小于预设等待时间,则对所述子线程任务进行监控。在一示例性实施例中,所述任务监控单元,还被配置为执行获取所述子线程任务的剩余任务;将所述子线程任务的剩余任务输入到预先训练的时间预测模型,得到所述剩余任务的完成时间,作为所述子线程任务的剩余完成时间;所述预先训练的时间预测模型用于预测输入的所述剩余任务的完成时间。根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面的任一项实施例中所述的线程间通信方法。根据本公开实施例的第四方面,提供一种计算机可读存储介质,包括:当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面的任一项实施例中所述的线程间通信方法。根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从所述计算机可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的线程间通信方法。本公开的实施例提供的技术方案至少带来以下有益效果:当执行主线程任务时,检测主线程对应的子线程是否执行完成子线程任务;若子线程执行完成子线程任务,则获取子线程任务的本文档来自技高网...

【技术保护点】
1.一种线程间通信方法,其特征在于,应用于主线程,包括:/n当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务;/n若所述子线程执行完成所述子线程任务,则获取所述子线程任务的处理结果;/n若对与所述处理结果对应的任务执行完毕,则执行所述主线程任务。/n

【技术特征摘要】
1.一种线程间通信方法,其特征在于,应用于主线程,包括:
当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务;
若所述子线程执行完成所述子线程任务,则获取所述子线程任务的处理结果;
若对与所述处理结果对应的任务执行完毕,则执行所述主线程任务。


2.根据权利要求1所述的线程间通信方法,其特征在于,在当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务之前,还包括:
获取执行所述主线程任务的任务处理指令;
在所述任务处理指令中添加任务检测指令;所述任务检测指令用于检测所述子线程是否执行完成所述子线程任务。


3.根据权利要求2所述的线程间通信方法,其特征在于,所述当执行主线程任务时,检测所述主线程对应的子线程是否执行完成子线程任务,包括:
当调用所述任务处理指令执行主线程任务时,若识别到所述任务处理指令中添加有所述任务检测指令,则通过所述任务检测指令,检测所述主线程对应的子线程是否执行完成子线程任务。


4.根据权利要求1或3所述的线程间通信方法,其特征在于,所述检测所述主线程对应的子线程是否执行完成子线程任务,包括:
获取所述子线程任务对应的信号量;
若所述信号量为目标信号量,则确认所述子线程执行完成所述子线程任务;所述目标信号量用于表征所述子线程任务执行完成。


5.根据权利要求2所述的线程间通信方法,其特征在于,在若对所述处理结果执行完毕,则执行所述主线程任务之后,还包...

【专利技术属性】
技术研发人员:李杨威
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1