The invention discloses a multi-task concurrent execution method, storage medium, equipment and system, which relates to the technical field of network communication. The method includes: initializing task management objects, matching the number of sub-task Thread objects created in initialization with the maximum number of tasks in the operating system; completing the creation of all sub-task threads and setting up the execution process by executing the execution interface of task management objects; initializing network service tasks, and creating different networks according to different network requests in initialization. Service task, and bind the corresponding network request callback function; when there is a network request, the network event message is delivered to the message queue; the most advanced sub-task thread of the thread will get the message from the message queue and perform the corresponding network service task; after execution, release the message and wait for the arrival of new message. The invention can reduce the process of creating and releasing threads, effectively reduce system overhead and failure rate, and effectively improve the overall performance of the system.
【技术实现步骤摘要】
一种多任务并发执行方法、存储介质、设备及系统
本专利技术涉及网络通信
,具体来讲是一种多任务并发执行方法、存储介质、设备及系统。
技术介绍
随着网络通信技术的快速发展,在网络通信中需要执行各种网络请求,因此经常会碰到多任务并发执行的问题。目前,常规的实现网络请求的多任务执行的方式是:在需要的时候,通过系统接口创建新的线程,将多任务分发到几个线程进行执行;然后,在任务执行完成之后线程退出,操作系统再将相关资源释放。但是,实际应用中发现,这种常规的执行方式依然存在以下缺陷:(1)在常规的执行方式中,需要在新任务开启时创建线程并在执行完成后释放线程,因此在多任务时,会频繁创建线程、释放线程。这就导致多任务下整体系统开销的增大;并且,频繁地创建、释放线程还会增大系统故障率的发生(由于创建释放的不适当,导致一些僵死线程)。(2)当同一时间任务较多时,即多任务并发时,会使系统产生过多的线程。这无疑增大了系统的开销,使得系统资源得不到最好的利用,进而导致系统整体性能降低。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种多任务并发执行方法、存储介质、设备及 ...
【技术保护点】
1.一种多任务并发执行方法,其特征在于,该方法包括以下步骤:S1、主线程完成任务管理对象的初始化,所述任务管理对象用于管理所有子任务线程的创建、释放与开销;初始化过程中,将创建多个用于执行网络服务任务的子任务线程的对象,该子任务线程的对象的个数与操作系统的最大任务数相匹配;S2、主线程通过执行任务管理对象已有的执行接口,完成所有子任务线程的创建,并进行子任务线程的执行过程的设置;S3、主线程完成网络服务任务的初始化;初始化过程中,根据不同的网络请求创建各种不同的网络服务任务,并为每个网络服务任务绑定相应的网络请求回调函数,网络请求回调函数用来根据不同的网络请求执行不同的网络 ...
【技术特征摘要】
1.一种多任务并发执行方法,其特征在于,该方法包括以下步骤:S1、主线程完成任务管理对象的初始化,所述任务管理对象用于管理所有子任务线程的创建、释放与开销;初始化过程中,将创建多个用于执行网络服务任务的子任务线程的对象,该子任务线程的对象的个数与操作系统的最大任务数相匹配;S2、主线程通过执行任务管理对象已有的执行接口,完成所有子任务线程的创建,并进行子任务线程的执行过程的设置;S3、主线程完成网络服务任务的初始化;初始化过程中,根据不同的网络请求创建各种不同的网络服务任务,并为每个网络服务任务绑定相应的网络请求回调函数,网络请求回调函数用来根据不同的网络请求执行不同的网络服务操作;S4、当有网络服务任务对应的网络请求到来时,创建该网络服务任务对应的网络事件消息,并根据该网络服务任务绑定的网络请求回调函数,设置该网络事件消息的回调处理函数;再将该网络事件消息投递到消息队列中;当前线程最靠前的子任务线程,从消息队列中获取该网络事件消息,并通过调用相应的回调处理函数来执行对应网络服务任务;执行完成后,释放该网络事件消息并继续等待新的网络事件消息的到来。2.如权利要求1所述的多任务并发执行方法,其特征在于,步骤S1中主线程完成任务管理对象的初始化的具体流程为:S101、从本地配置文件中获取操作系统的最大任务数;S102、创建用于管理所有子任务线程的创建、释放与开销的任务管理对象;S103、将子任务线程的对象的个数初始化为与操作系统的最大任务数相匹配;S104、按照初始化的子任务线程的对象的个数,创建多个用于执行网络服务任务的子任务线程的对象;并设置好相应的初始化接口、处理函数,以及子任务线程的任务ID。3.如权利要求2所述的多任务并发执行方法,其特征在于,步骤S2中,主线程采用循环方式完成所有子任务线程的创建及执行过程的设置,每次循环过程的具体流程为:S201、设置子任务线程的调用接口函数的函数体,该函数体用来实现子任务线程的执行过程;该函数体被执行时,首先调用初始化时设置好的初始化接口,然后再获取消息接口,该消息接口是用来获取消息队列中网络事件消息的接收接口;该函数体的主体为一个while死循环,该while死循环的入口为网络事件消息获取,当获取到网络事件消息时调用初始化时设置好的处理函数执行该网络事件消息对应的网络服务任务,执行完成后,释放该网络事件消息并继续等待新的网络事件消息的到来;S202、设置子任务线程的调用接口函数的处理参数,该处理参数为初始化时创建的子任务线程的对象;S203、将子任务线程的ID设置为初始化时设置好的子任务线程的任务ID;S204、通过子线程创建函数创建上述设置好的子任务线程;并将创建的子任务线程的ID返回给任务管理对象进行统一管理。4.如权利要求1所述的多任务并发执行方法,其特征在于,步骤S3具体包括以下流程:S301、主线程根据不同的网络请求通过绑定IP与端口创建各种不同的网络服务任务;S302、主线程为每个网络服务任务绑定相应的网络请求回调函数;S303、主线程完成上述网络服务任务的初始化后,调用用于实现主线程等待的等待函数,保持主线程自身不退出。5.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至4中任一项所述方法的步骤。6.一种多任务并发执行设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至4中任一项所述方法的步骤。7.一...
【专利技术属性】
技术研发人员:何绍富,张文明,陈少杰,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。