一种多线程启动同步方法技术

技术编号:20176358 阅读:57 留言:0更新日期:2019-01-23 00:17
本申请提供了一种多线程启动同步方法,通过采取三种状态和事件机制来控制多线程启动,使线程无序的启动过程变成有序的启动过程,从而避免系统的运转出现异常,也可以避免超时循环等待降低系统性能的情况,能够在不需要定义全局参数变量,也不需要考虑延迟,以及避免死锁的情况下实现多线程启动同步。

A Multi-Thread Start Synchronization Method

This application provides a multi-threaded startup synchronization method. By adopting three state and event mechanisms to control multi-threaded startup, the disorderly startup process of threads can be transformed into an orderly startup process, thus avoiding abnormal operation of the system, and also avoiding the situation of time-out loop waiting to reduce system performance. It can avoid the need to define global parameter variables and do not need to consider. Delay and multi-thread startup synchronization without deadlock.

【技术实现步骤摘要】
一种多线程启动同步方法
本专利技术涉及通信
,特别涉及一种多线程启动同步方法。
技术介绍
线程启动时经常需要主线程向子线程传递参数,但是因线程之间的运行时间片随机,经常出现一个线程任务执行一半就切换到了另外一个线程,这样就导致主线程向子线程传递的参数在子线程还没有获取到相关参数信息时,主线程就将参数信息释放了,或者导致主线程还有准备好后续的资源,子线程已经执行到使用主线程的该资源了,从而使得主线程或者子线程出现异常崩溃。在线程退出时也存在类似问题,当主线程退出时希望子线程也同步退出,但不能通过暴力方式关闭子线程,因为这样会导致资源没有释放从而出现资源泄漏,同时子线程退出时也存在线程启动时的类似问题,出现主线程或者子线程异常崩溃现象。现有技术实现在线程启动进行参数传递时一般采取全局共享参数变量和启动后sleep延时方式,或者简单事件等待机制;退出时一般使用延时方式。现有技术采取全局变量模式需要定义全局参数变量,该方式一方面浪费系统存储空间,也增加了维护复杂度,增大了软件耦合性;另外使得模块可重入性、可维护性、可重用性变得较差。现有技术的延时机制的延时时长而无法精确量化,从而使得模本文档来自技高网...

【技术保护点】
1.一种多线程启动同步方法,其特征在于,该方法包括:配置启动共享状态变量,以及启动触发事件;通过主线程模块启动主线程,并将配置的初始状态值赋值给启动共享状态变量;通过主线程模块启动子线程模块,并将参数信息传输给子线程模块;通过子线程模块启动子任务线程,接收主线程模块传输的参数信息并存储;使用主线程模块判断当前启动共享状态变量的值是否为初始状态值,如果是,将启动共享状态变量的值修改为配置的第一状态值;等待启动触发事件,在接收到启动触发事件时,继续运行主线程;否则,修改启动共享状态变量的值为初始状态值,并发送启动触发事件,继续运行主线程;使用子线程模块判断当前启动共享状态变量的值是否为初始状态值,...

【技术特征摘要】
1.一种多线程启动同步方法,其特征在于,该方法包括:配置启动共享状态变量,以及启动触发事件;通过主线程模块启动主线程,并将配置的初始状态值赋值给启动共享状态变量;通过主线程模块启动子线程模块,并将参数信息传输给子线程模块;通过子线程模块启动子任务线程,接收主线程模块传输的参数信息并存储;使用主线程模块判断当前启动共享状态变量的值是否为初始状态值,如果是,将启动共享状态变量的值修改为配置的第一状态值;等待启动触发事件,在接收到启动触发事件时,继续运行主线程;否则,修改启动共享状态变量的值为初始状态值,并发送启动触发事件,继续运行主线程;使用子线程模块判断当前启动共享状态变量的值是否为初始状态值,如果是,将启动共享状态变量的值修改为配置的第二状态值,等待启动触发事件,在接收到启动触发事件时,继续运行子线程;否则,修改启动共享状态变量的值为初始状态值,并发送启动触发事件,继续运行子线程。2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:针对主线程,配置等待启动触发事件的等待时间为第一预设时间;通过主线程模块等待启动触发事件时,若第一预设时间内接收到启动触发事件,则运行主线程;若第一预设时间到时,未接收到启动触发事件,则确定当前启动共享变量参数的值是否为第一状态值,如果是,继续等待启动触发事件;否则,运行主线程。3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:针对子线程,配置等待启动触发事件的等待时间为第二预设时间;通过子线程模块等待启动触发事件时,若第二预设时间内接收到启动触发事件,则运行子线程;若第二预设时间到时,未接收到启动触发事件,则确定当前启动共享变量参数的值是否为第二状态值,如果是,继续等待启动触发事件;否则,运行子线程。4.根...

【专利技术属性】
技术研发人员:杨绍军
申请(专利权)人:普天信息技术有限公司
类型:发明
国别省市:北京,11

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

1