后台进程假死处理方法及客户端技术

技术编号:22295274 阅读:42 留言:0更新日期:2019-10-15 04:27
本发明专利技术公开了一种后台进程假死处理方法及客户端,所述后台进程假死处理方法包括:监控后台进程是否进入假死状态;若所述后台进程进入假死状态,则断开所述后台进程中当前线程的套接字与服务器之间的连接;针对所述后台进程创建用于所述后台进程与所述服务器通信的新线程,在所述新线程中创建新的套接字,并建立所述新的套接字与所述服务器之间的连接,基于所述新的套接字与所述服务器之间的连接,实现所述新线程与所述服务器之间的通信。本发明专利技术提供的后台进程假死处理方法及客户端,能够保证后台进程切换回前台后还可继续使用。

False Dead Processing Method of Background Process and Client

【技术实现步骤摘要】
后台进程假死处理方法及客户端
本专利技术涉及计算机
,具体涉及一种后台进程假死处理方法及客户端。
技术介绍
进程是一个具有一定独立功能的程序,它是关于某个数据集合的一次运行活动。在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。通常,一个进程中可以包含若干个线程。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。进程切换是当今多任务多用户操作系统所应具有的基本功能。操作系统为了控制进程的执行,必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为被称为进程切换、任务切换或上下文切换。出于节省系统空间、降低系统功耗、提升系统性能等原因,当客户端的应用进程被切换到后台后,一旦长时间不用,系统会自动清理掉一些没用的线程。当线程被系统清理掉后,该后台进程虽然仍能接收服务器下发的消息,但是却不能对服务器下发的消息进行处理,即进入了一种假死状态。对于进入假死状态的后台进程,当用户再将其切换到前台,该进程已不可继续使用。
技术实现思路
本专利技术所要解决的是后台进程假死导致切换回前台不可继续使用的问题。本专利技术通过下述技术方案实现:一种后台进程假死处理方法,包括:监控后台进程是否进入假死状态;若所述后台进程进入假死状态,则断开所述后台进程中当前线程的套接字与服务器之间的连接;针对所述后台进程创建用于所述后台进程与所述服务器通信的新线程,在所述新线程中创建新的套接字,并建立所述新的套接字与所述服务器之间的连接,基于所述新的套接字与所述服务器之间的连接,实现所述新线程与所述服务器之间的通信。可选的,所述监控后台进程是否进入假死状态包括:判断所述后台进程中接收消息的线程在未接收到所述服务器下发的消息时是否为阻塞状态;若所述后台进程中接收消息的线程在未接收到所述服务器下发的消息时不为阻塞状态,则所述后台进程进入假死状态。可选的,所述监控后台进程是否进入假死状态包括:判断所述后台进程中发送消息的线程在未接收到用户操作产生的消息时是否为阻塞状态;若所述后台进程中发送消息的线程在未接收到用户操作产生的消息时不为阻塞状态,则所述后台进程进入假死状态。可选的,所述建立所述新的套接字与所述服务器之间的连接包括:由所述新的套接字向所述服务器发送连接请求;所述服务器响应所述连接请求,并通过三次握手协议与所述新的套接字建立连接。本专利技术提供一种客户端,包括:监控模块,用于监控后台进程是否进入假死状态;断开模块,用于在所述后台进程进入假死状态时断开所述后台进程中当前线程的套接字与服务器之间的连接;重连模块,用于针对所述后台进程创建用于所述后台进程与所述服务器通信的新线程,在所述新线程中创建新的套接字,并建立所述新的套接字与所述服务器之间的连接,基于所述新的套接字与所述服务器之间的连接,实现所述新线程与所述服务器之间的通信。可选的,所述监控模块包括:判断模块,用于判断所述后台进程中接收消息的线程在未接收到所述服务器下发的消息时是否为阻塞状态;确定模块,用于在所述后台进程中接收消息的线程在未接收到所述服务器下发的消息时不为阻塞状态时,确定所述后台进程进入假死状态。可选的,所述监控模块包括:判断模块,用于判断所述后台进程中发送消息的线程在未接收到用户操作产生的消息时是否为阻塞状态;确定模块,用于在所述后台进程中发送消息的线程在未接收到用户操作产生的消息时不为阻塞状态时,确定所述后台进程进入假死状态。可选的,所述建立所述新的套接字与所述服务器之间的连接包括:由所述新的套接字向所述服务器发送连接请求;所述服务器响应所述连接请求,并通过三次握手协议与所述新的套接字建立连接。基于上述后台进程假死处理方法,本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述后台进程假死处理方法。基于上述后台进程假死处理方法,本专利技术还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述后台进程假死处理方法。本专利技术与现有技术相比,具有如下的优点和有益效果:后台进程进入假死状态,实质上是系统对所述后台进程中与服务器进行通信的线程进行了清理,导致与所述服务器进行通信的线程没有了阻塞能力。当所述后台进程被切换回前台后,由于与所述服务器进行通信的线程没有了阻塞能力,当所述服务器再向所述后台进程下发新消息,与所述服务器进行通信的线程已经无法对新消息进行处理,解析和分发消息的逻辑会被跳过,导致被切换回前台的后台进程不可使用。因此,本专利技术提供的后台进程假死处理方法及客户端,一直会对所述后台进程进行监控,一旦监控到所述后台进程进入假死状态,立即断开所述后台进程中当前套接字与服务器之间的连接,即舍弃没有了阻塞能力的、与服务器进行通信的旧线程,而再重新建立新线程,在新线程中创建新的套接字与服务器进行通信,使得后台进程产生了具有阻塞能力的、与服务器进行通信的新线程,能够对所述服务器下发的新消息进行处理,故而,保证了后台进程被切换回前台后可继续使用。附图说明此处所说明的附图用来提供对本专利技术实施例的进一步理解,构成本申请的一部分,并不构成对本专利技术实施例的限定。在附图中:图1是本专利技术实施例的后台进程假死处理方法的流程示意图;图2是本专利技术实施例的客户端的结构示意图;图3为本专利技术实施例提供的计算机设备整体结构示意图。具体实施方式正如
技术介绍
中所描述的,后台进程长时间不用,系统会自动清理掉一些没用的线程,导致出现后台进程被切换回前台不可继续使用的问题。为了能够异步处理客户端和服务服务器之间的连接,让用户没有卡顿的感觉,通常应用进程的渲染和逻辑处理由一个线程处理,与服务器之间的通信由另一个线程处理,通过在线程中创建套接字与服务器中的套接字(socket)建立连接而进行通信。应用进程和服务器一旦建立连接后就具有了通信能力,正常情况下,对于应用进程中负责通信的线程来说,服务器如果有消息下发,应用进程中负责通信的线程就能接收;服务器如果没有消息下发,应用进程中负责通信的线程就处于阻塞状态,即等待状态。专利技术人通过研究发现,当前台正在运行的应用进程被切换到后台后,如果长时间不用,系统会对后台进程中与服务器进行通信的线程进行清理。当与服务器进行通信的线程被清理后,即使服务器没有下发消息,后台进程中负责通信的线程也不会进行阻塞了。当服务器再向后台进程下发新消息,后台进程中负责通信的线程已经无法对新消息进行处理,解析和分发消息的逻辑会被跳过,导致被切换回前台的后台进程不可使用。基于此,本专利技术提供一种后台进程假死处理方法及客户端,所述后台进程假死处理方法包括:监控后台进程是否进入假死状态;若所述后台进程进入假死状态,则断开所述后台进程中当前套接字与服务器之间的连接;针对所述后台进程创建用于所述后台进程与所述服务器通信的新线程,在所述新线程中创建新的套接字,并建立所述新的套接字与所述服务器之间的连接,基于所述新的套接字与所述服务器之间的连接,实现所述新线程与所述服务器之间的通信。为使本本文档来自技高网
...

【技术保护点】
1.一种后台进程假死处理方法,其特征在于,包括:监控后台进程是否进入假死状态;若所述后台进程进入假死状态,则断开所述后台进程中当前线程的套接字与服务器之间的连接;针对所述后台进程创建用于所述后台进程与所述服务器通信的新线程,在所述新线程中创建新的套接字,并建立所述新的套接字与所述服务器之间的连接,基于所述新的套接字与所述服务器之间的连接,实现所述新线程与所述服务器之间的通信。

【技术特征摘要】
1.一种后台进程假死处理方法,其特征在于,包括:监控后台进程是否进入假死状态;若所述后台进程进入假死状态,则断开所述后台进程中当前线程的套接字与服务器之间的连接;针对所述后台进程创建用于所述后台进程与所述服务器通信的新线程,在所述新线程中创建新的套接字,并建立所述新的套接字与所述服务器之间的连接,基于所述新的套接字与所述服务器之间的连接,实现所述新线程与所述服务器之间的通信。2.根据权利要求1所述的后台进程假死处理方法,其特征在于,所述监控后台进程是否进入假死状态包括:判断所述后台进程中接收消息的线程在未接收到所述服务器下发的消息时是否为阻塞状态;若所述后台进程中接收消息的线程在未接收到所述服务器下发的消息时不为阻塞状态,则所述后台进程进入假死状态。3.根据权利要求1所述的后台进程假死处理方法,其特征在于,所述监控后台进程是否进入假死状态包括:判断所述后台进程中发送消息的线程在未接收到用户操作产生的消息时是否为阻塞状态;若所述后台进程中发送消息的线程在未接收到用户操作产生的消息时不为阻塞状态,则所述后台进程进入假死状态。4.根据权利要求1至3任一项所述的后台进程假死处理方法,其特征在于,所述建立所述新的套接字与所述服务器之间的连接包括:由所述新的套接字向所述服务器发送连接请求;所述服务器响应所述连接请求,并通过三次握手协议与所述新的套接字建立连接。5.一种客户端,其特征在于,包括:监控模块,用于监控后台进程是否进入假死状态;断开模块,用于在所述后台进程进入假死状态时断开所述后台进程中当前线程的套接字与服务器之间的...

【专利技术属性】
技术研发人员:孟志兵张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1