【技术实现步骤摘要】
本专利技术软件开发控制领域,涉及一种自动跳出阻塞式代码段的控制方法。
技术介绍
在软件开发中,数据IO、网络访问等操作由于设备或者网络环境的不稳定,常常会造成程序执行的阻塞。例如,客户端从远程数据库访问数据时,阻塞会造成客户端读写数据的中断,从而影响对后续业务逻辑的执行。一般而言,这些带有阻塞性质的软件代码往往是第三方所提供的具备一定可用性质、甚至具备工业级稳定性的开发库、或软件包。理论上,这些软件包提供的接口里必定含有超时应对机制,开发者只要在调用时配置一定的超时参数就可以避免阻塞。但是阻塞引起的原因还有服务端的不恰当的配合设计,有时候第三方提供的超时机制并不能真正完全奏效。还有一些情况是这些带有阻塞性质的软件代码,本身就是属于开发者自己开发的内容。在以上两种情况时都需要开发者自己维护设计一套“阻塞自动恢复”机制。强调这里“阻塞式代码段”的概念是指并非此段代码被阻塞式地执行(事实上只要不在多线程状态下,大概一般的代码都会被阻塞式地执行),而是指这段代码执行时有一定的概率会进入无限止地停顿中。
技术实现思路
为了克服已有技术阻塞式代码段无法自动跳出、稳定性较差的不足,本专利技术提供了一种实现自动跳出阻塞式代码段、稳定性较好的自动跳出阻塞式代码段的控制方法。本专利技术解决其技术问题所采用的技术方案是:一种自动跳出阻塞式代码段的控制方法,包括如下步骤:1)在当前线程里启动2个子线程;首先启动的一个子线程函数封装了阻塞式的代码段,称为阻塞式线程;另外一个子线程称为监护线程,启动监护线程时输入当前的系统时间、阻塞式线程的句柄,当前系统时间作为计算线程工作时长的初始时 ...
【技术保护点】
一种自动跳出阻塞式代码段的控制方法,其特征在于:包括如下步骤:1)在当前线程里启动2个子线程;首先启动的一个子线程函数封装了阻塞式的代码段,称为阻塞式线程;另外一个子线程称为监护线程,启动监护线程时输入当前的系统时间、阻塞式线程的句柄,当前系统时间作为计算线程工作时长的初始时间;2)在监护线程中,先查询阻塞式线程的工作状态,只有可能的2种状态:①、“进行”,②、“结束”,并获得该线程的状态;3)判断状态是“进行”、还是“结束”;4)如“结束”,到步骤8)。5)如“进行”,则取当前系统时间,并由初始时间计算阻塞式线程已经进行的时间长度;6)如时间长度不超过预设的阈值,则回到步骤2);7)如果时间长度超过阈值,则终结阻塞式线程;8)退出监护线程。
【技术特征摘要】
1.一种自动跳出阻塞式代码段的控制方法,其特征在于:包括如下步骤:1)在当前线程里启动2个子线程;首先启动的一个子线程函数封装了阻塞式的代码段,称为阻塞式线程;另外一个子线程称为监护线程,启动监护线程时输入当前的系统时间、阻塞式线程的句柄,当前系统时间作为计算线程工作时长的初始时间;2)在监护线程中,先查询阻塞式线程的工作状态,只有可能的2种状态:①、“进行”,②、“结束”,并获得该线程的状态;3)判断状态是“进行”、还是“结束”;4)如“结束”,到步骤8)...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。