一种LUA虚拟机任务执行方法及相关装置制造方法及图纸

技术编号:18444664 阅读:30 留言:0更新日期:2018-07-14 10:16
本发明专利技术公开了一种LUA虚拟机任务执行方法、系统、装置及计算机可读存储介质,其中方法包括:确定当前待命LUA虚拟机任务;在预设线程池中确定当前的空闲线程;将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。由此可见,本发明专利技术实施例提供的一种LUA虚拟机任务执行方法,确定待命LUA虚拟机任务与空闲线程后,通过调度的方式,将待命LUA虚拟机任务分配至空闲线程,由空闲线程来执行该任务,每个线程不固定绑定某个任务,因此不要在执行任务时为该任务创建一个线程,也不需要在该任务结束时销毁与该任务对应的线程,因此可以大大减少系统的开销。

A LUA virtual machine task execution method and related device

The present invention discloses a LUA virtual machine task execution method, system, device and computer readable storage medium, which includes: determining the current standby LUA virtual machine task; determining the current idle thread in a preset thread pool; scheduling the standby LUA virtual machine task to the idle thread to make the idle thread idle. The thread executes the standby LUA virtual machine task. Thus, this invention provides a LUA virtual machine task execution method, which determines the standby LUA virtual machine task and the idle thread. By scheduling, the standby LUA virtual machine task is allocated to the idle thread, the idle thread is used to perform the task, and each thread does not bind a task, so it is not bound to bind a task. A thread is created for the task when the task is executed, and there is no need to destroy the thread corresponding to the task at the end of the task, so it can greatly reduce the overhead of the system.

【技术实现步骤摘要】
一种LUA虚拟机任务执行方法及相关装置
本专利技术涉及计算机
,更具体地说,涉及一种LUA虚拟机任务执行方法、系统、装置及计算机可读存储介质。
技术介绍
Lua是一门设计优雅,轻量、易扩展的可嵌入式脚本语言,受到越来也多的开发者喜爱,现已被广泛应用于游戏开发,嵌入式开发,人工智能开发等领域。但其缺少并行开发库的支持,需要开发者在开发过程中关注并发、同步问题,因此会大大降低开发效率和质量。开发过程中采用actor模型可以有效的提高开发质量和效率。actor可以看作是一个独立的实体,每个actor之间毫无关联,但是它们可以通过消息来通讯。但目前用于lua的actor模型库都是基于操作系统的线程库开发的,即每个线程都开启一个lua虚拟机,每个lua虚拟机执行一个并行任务,然后用消息通讯的方式协作。但是,每个任务的创建和销毁都会引起线程的创建和销毁,也就是每执行一个任务就要创建一个线程,在任务完成时,销毁此线程。因此会有大量的线程被创建、销毁,系统开销十分大。因此,如何减少线程的创建和销毁,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种LUA虚拟机任务执行方法、系统、装置及计算机可读存储介质,以减少线程的创建和销毁。为实现上述目的,本专利技术实施例提供了如下技术方案:一种LUA虚拟机任务执行方法,包括:确定当前待命LUA虚拟机任务;在预设线程池中确定当前的空闲线程;将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。其中,所述确定当前待命LUA虚拟机任务,包括:确定当前未被执行的LUA虚拟机任务作为待命LUA虚拟机任务。其中,所述确定当前未被执行的LUA虚拟机任务作为待命LUA虚拟机任务,包括:确定当前未被执行的完整LUA虚拟机任务;判断所述完整LUA虚拟机任务的预估执行时间是否大于预设阈值;若是,则将所述完整LUA虚拟机任务进行拆分得到所述待命LUA虚拟机任务;若否,则将所述完整LUA虚拟机任务确定为所述待命LUA虚拟机任务。其中,所述确定当前待命LUA虚拟机任务,包括:确定已运行时间大于所述预设时间的正在被执行的目标LUA虚拟机任务;将所述目标LUA虚拟机任务进行分解,得到待命LUA虚拟机任务。其中,确定运行时间大于预设时间的正在被执行的目标LUA虚拟机任务,包括:利用debughook接口监控当前正在被执行的虚拟机任务的已运行时间;确定所述已运行时长大于预设时间的正在被执行的目标LUA虚拟机任务。为解决上述技术问题,本专利技术还提供了一种LUA虚拟机任务执行系统,包括:第一确定模块,用于确定当前待命LUA虚拟机任务;第二确定模块,用于在预设线程池中确定当前的空闲线程;调度模块,用于将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。其中,所述第一确定模块,包括:第一确定单元,用于确定当前未被执行的LUA虚拟机任务作为待命LUA虚拟机任务。其中,所述第一确定模块,包括:第二确定单元,用于确定已运行时间大于所述预设时间的正在被执行的目标LUA虚拟机任务;分解单元,用于将所述目标LUA虚拟机任务进行分解,得到待命LUA虚拟机任务。为解决上述技术问题,本专利技术还提供了一种LUA虚拟机任务执行装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现所述LUA虚拟机任务执行方法的步骤。为解决上述技术问题,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述LUA虚拟机任务执行方法的步骤。通过以上方案可知,本专利技术提供的一种LUA虚拟机任务执行方法,包括:确定当前待命LUA虚拟机任务;在预设线程池中确定当前的空闲线程;将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。由此可见,本专利技术实施例提供的一种LUA虚拟机任务执行方法,确定待命LUA虚拟机任务与空闲线程后,通过调度的方式,将待命LUA虚拟机任务分配至空闲线程,由空闲线程来执行该任务,每个线程不固定绑定某个任务,因此不要在执行任务时为该任务创建一个线程,也不需要在该任务结束时销毁与该任务对应的线程,因此可以大大减少系统的开销。本专利技术还提供了一种LUA虚拟机任务执行系统、装置及计算机可读存储介质,同样可以实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种LUA虚拟机任务执行方法流程图;图2为本专利技术实施例公开的一种具体的LUA虚拟机任务执行方法流程图;图3为本专利技术实施例公开的一种具体地LUA虚拟机任务执行方法流程图;图4为本专利技术实施例公开的一种LUA虚拟机任务执行系统结构示意图;图5为本专利技术实施例公开的一种具体的LUA虚拟机任务执行系统结构示意图;图6为本专利技术实施例公开的一种具体地LUA虚拟机任务执行系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种LUA虚拟机任务执行方法、系统、装置及计算机可读存储介质,以减少线程的创建和销毁。参见图1,本专利技术实施例提供的一种LUA虚拟机任务执行方法,具体包括:S101,确定当前待命LUA虚拟机任务。具体地,首先确定待命LUA虚拟机任务,其中,待命LUA虚拟机任务可以是等待被执行的完整任务,也可以是正在被执行的任务中的未被执行的一部分。S102,在预设线程池中确定当前的空闲线程。在本方案中,预设有线程池,线程池中有预设数量的线程,在有任务需要被执行时,不需要创建新的线程,在该任务完成时也不需要销毁线程。当有需要被执行的任务时,首先需要确定线程池中的空闲线程。S103,将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。具体地,可以利用调度器,将待命LUA虚拟机任务调度至空闲的线程,由空闲线程对该任务进行处理。在本方案中,任务没有固定绑定到某个特定的线程,而是在有线程空闲时,将该任务调度至空闲线程。需要说明的是,一般情况下线程池中线程总数小于待命LUA虚拟机任务数,从而减小系统的开销。由此可见,本专利技术实施例提供的一种LUA虚拟机任务执行方法,确定待命LUA虚拟机任务与空闲线程后,通过调度的方式,将待命LUA虚拟机任务分配至空闲线程,由空闲线程来执行该任务,每个线程不固定绑定某个任务,因此不要在执行任务时为该任务创建一个线程,也不需要在该任务结束时销毁与该任务对应的线程,因此可以大大减少系统的开销。下面对本专利技术实施例提供的一种具体的LUA虚拟机任务执行方法进行介绍,区别于上述实施例,本专利技术实施例提供的一种具体的LUA虚拟机任务执行方法对上述实施例中S101做本文档来自技高网...

【技术保护点】
1.一种LUA虚拟机任务执行方法,其特征在于,包括:确定当前待命LUA虚拟机任务;在预设线程池中确定当前的空闲线程;将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。

【技术特征摘要】
1.一种LUA虚拟机任务执行方法,其特征在于,包括:确定当前待命LUA虚拟机任务;在预设线程池中确定当前的空闲线程;将所述待命LUA虚拟机任务调度至所述空闲线程,以使所述空闲线程执行所述待命LUA虚拟机任务。2.根据权利要求1所述的方法,其特征在于,所述确定当前待命LUA虚拟机任务,包括:确定当前未被执行的LUA虚拟机任务作为待命LUA虚拟机任务。3.根据权利要求2所述的方法,其特征在于,所述确定当前未被执行的LUA虚拟机任务作为待命LUA虚拟机任务,包括:确定当前未被执行的完整LUA虚拟机任务;判断所述完整LUA虚拟机任务的预估执行时间是否大于预设阈值;若是,则将所述完整LUA虚拟机任务进行拆分得到所述待命LUA虚拟机任务;若否,则将所述完整LUA虚拟机任务确定为所述待命LUA虚拟机任务。4.根据权利要求1所述的方法,其特征在于,所述确定当前待命LUA虚拟机任务,包括:确定已运行时间大于所述预设时间的正在被执行的目标LUA虚拟机任务;将所述目标LUA虚拟机任务进行分解,得到待命LUA虚拟机任务。5.根据权利要求4所述的方法,其特征在于,确定运行时间大于预设时间的正在被执行的目标LUA虚拟机任务,包括:利用debughook接口监控当前正在被执行的...

【专利技术属性】
技术研发人员:王志强朱建坤
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1