CN106547612B - 一种多任务处理方法及装置 - Google Patents

一种多任务处理方法及装置 Download PDF

Info

Publication number
CN106547612B
CN106547612B CN201610908577.1A CN201610908577A CN106547612B CN 106547612 B CN106547612 B CN 106547612B CN 201610908577 A CN201610908577 A CN 201610908577A CN 106547612 B CN106547612 B CN 106547612B
Authority
CN
China
Prior art keywords
thread
task processing
management
handle
idle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610908577.1A
Other languages
English (en)
Other versions
CN106547612A (zh
Inventor
李意希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yihua Computer Co Ltd
Shenzhen Yihua Time Technology Co Ltd
Shenzhen Yihua Financial Intelligent Research Institute
Original Assignee
Shenzhen Yihua Computer Co Ltd
Shenzhen Yihua Time Technology Co Ltd
Shenzhen Yihua Financial Intelligent Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Yihua Computer Co Ltd, Shenzhen Yihua Time Technology Co Ltd, Shenzhen Yihua Financial Intelligent Research Institute filed Critical Shenzhen Yihua Computer Co Ltd
Priority to CN201610908577.1A priority Critical patent/CN106547612B/zh
Publication of CN106547612A publication Critical patent/CN106547612A/zh
Application granted granted Critical
Publication of CN106547612B publication Critical patent/CN106547612B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明适用于计算机工程技术领域,提供了一种多任务处理方法及装置。所述方法包括:接收至少一个任务处理请求,将所述任务处理请求存入预创建的缓冲队列,唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄,通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄,根据所述句柄对应的空闲线程处理所述任务处理请求。通过上述方法能够提高多任务处理的效率,同时占用内存小。

Description

一种多任务处理方法及装置
技术领域
本发明实施例属于计算机工程技术领域,尤其涉及一种多任务处理方法及装置。
背景技术
微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。虽然微控制器的性能越来越强大,但微控制器对大数据量及并发命令的处理仍较困难。
目前,对于大数据量以及并发的外部命令或事件的处理,都是基于Linux或者Windows下的相关应用,由于Linux或Windows下同时要实现多种功能,因此实现的算法复杂,占用内存大,对设备要求高。而一般微控制器内存有限,因此无法直接采用现有的方法处理并发命令问题。
故,有必要提出一种新的技术方案,以解决上述技术问题。
发明内容
本发明实施例提供了一种多任务处理方法及装置,旨在解决现有的微控制器难于处理并发命令及数据的问题。
本发明实施例是这样实现的,一种多任务处理方法,所述方法包括:
接收至少一个任务处理请求;
将所述任务处理请求存入预创建的缓冲队列;
唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄;
通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄;
根据所述句柄对应的空闲线程处理所述任务处理请求。
本发明实施例的另一目的在于提供一种多任务处理装置,所述装置包括:
任务接收单元:用于接收至少一个任务处理请求;
任务存入单元,用于将所述任务处理请求存入预创建的缓冲队列;
管理线程唤醒单元,用于唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄;
句柄调取单元,用于通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄;
任务处理单元,用于根据所述句柄对应的空闲线程处理所述任务处理请求。
在本发明施例中,通过将接收的至少一个任务处理请求存入预创建的缓冲队列,从而唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述管理线程从预创建的线程管理队列中调取空闲线程的句柄,根据所述句柄对应的空闲线程处理所述任务处理请求。由于所述预创建的线程管理队列存入至少一个线程对应的句柄,而一个线程至少能够处理一个任务处理请求,因此该方法能够同时处理至少一个任务处理请求,并且,由于预先创建满足任务处理请求的缓冲队列和线程管理队列,占用内存少,因此,能够在占用较少内存的基础上实现并发任务的处理,同时,由于预创建的线程管理队列中存放的是空闲线程的句柄,管理线程被唤醒后直接从线程管理队列中调取句柄从而唤醒空闲线程处理任务,不需要遍历查找空闲线程,提高了处理效率。
附图说明
图1是本发明第一实施例提供的一种多任务处理方法的流程图;
图2是本发明第二实施例提供的一种多任务处理装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本发明实施例中,通过接收至少一个任务处理请求,将所述任务处理请求存入预创建的缓冲队列,继而唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄,通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄,根据所述句柄对应的空闲线程处理所述任务处理请求。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种多任务处理方法的流程图,详述如下:
步骤S11,接收至少一个任务处理请求。
其中,任务处理请求是指系统中应用程序接收到的任务处理请求,任务处理请求包括但不限于要处理的数据和命令请求。应用程序可以接收一个任务处理请求,也可以同时接收多个任务处理请求以便及时有效地完成大数据量或命令请求的处理。
步骤S12,将所述任务处理请求存入预创建的缓冲队列。
其中,所述预创建的缓冲队列是根据数据或命令请求的大小预先创建的用于存放数据或命令请求的队列。在接收到数据或命令请求后,将数据或命令请求存入缓冲队列,等待分配线程处理所述数据或命令请求。
可选地,为了便于提高分配空闲线程的效率,所述步骤S12之前还包括:
A1、获取任务处理请求数量。
A2、当所述任务处理请求数量大于1时,获取所述任务处理请求的优先级。
具体地,预先为不同的任务处理请求设置对应的优先级,当接收到多个任务处理请求时,获取所述多个任务处理请求的对应的优先级。
A3、将所述任务处理请求根据优先级高低顺序存入预创建的缓冲队列。
具体地,在接收到任务处理请求后,先获取任务处理请求的数量;当所述任务处理请求数量大于1时,也即用户发起大数据量或并发命令请求,获取接收的各个任务处理请求的优先级;将任务处理请求按优先级的高低顺序依次存入预先创建的缓冲队列。
可选地,根据任务处理请求实现的目的将任务处理请求进行分类。
步骤S13,唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄。
其中,预创建的线程管理队列中包括若干数量的地址缓冲区,用于存放线程对应的句柄。所述管理线程用于管理存有线程句柄的线程管理队列,该管理线程阻塞于缓冲队列。当缓冲队列为空时,所述管理线程处于挂起(或空闲)状态;当有任务处理请求存入缓冲队列时,所述管理线程被唤醒。所述预创建的线程管理队列存入至少一个线程对应的句柄,所述句柄用于标识线程,所述句柄包含线程的私有数据,其中,所述私有数据可以是变量、私有空间(该私有空间可以为邮箱、队列、栈等),所述变量包含线程创建后返回的值。
可选地,为了确定线程管理队列中地址缓冲区的数量,在步骤S13中线程管理队列预创建之前,包括:
B1、根据当前系统中应用的使用情况确定预创建的线程数目。
具体地,每个地址缓冲区对应可存放一个线程,所述线程管理队列中的地址缓冲区存放线程的句柄,通过评估当前系统中应用的使用情况确定预先创建的线程数目,也即预先确定句柄的数目。一般来说,一个任务处理请求由一个线程处理。同时使用的应用越多,即并发的任务处理请求越多,需要的线程数目也越多。
步骤S14,通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄。
可选地,在步骤S14之前,包括:
C1、为线程创建私有空间,所述线程阻塞于自身的私有空间。
具体地,在管理线程调取空闲线程的句柄之前,所处线程处于空闲状态,当管理线程通过调取线程的句柄将任务处理请求传递给线程的私有空间,线程的私有空间在接收到任务处理请求后唤醒线程。所述私有空间可以为线程私有邮箱,也可以为线程私有队列等。
可选地,为了优先处理指定的任务处理请求,在步骤S14之前,还包括:
D1、判断接收的任务处理请求数量是否大于空闲线程的数量。
D2、在接收的任务处理请求数量大于空闲线程的数量时,获取所述任务处理请求的优先级。
此时,所述步骤S14具体包括:所述管理线程根据任务处理请求的优先级高低顺序调取空闲线程的句柄。
具体地,当接收的任务处理请求数量小于或等于空闲线程的数量,所述管理线程直接调取线程管理队列中空闲线程的句柄;当接收的任务处理请求数量大于空闲线程的处理时,先获取任务处理请求的优先级,所述管理线程根据任务处理请求的优先级高低顺序调取空闲线程的句柄。所述任务处理请求的优先级由用户确定。
当然,若如上述A1~A3所述,将所述任务处理请求根据优先级高低顺序存入预创建的缓冲队列,则直接根据任务处理请求的优先级高低顺序调取空闲线程的句柄。
步骤S15,根据所述句柄对应的空闲线程处理所述任务处理请求。
其中,所述句柄通过句柄中的私有数据,如变量中线程成功创建后返回的值,来查找对应的线程。所述步骤S15具体包括:
E1、所述空闲线程的句柄将任务传递至所述空闲线程的私有空间,以唤醒所述空闲线程处理所述任务处理请求。
具体地,线程阻塞于其私有空间,当句柄将任务传递至空闲线程的私有空间,该空闲线程被唤醒处理任务处理请求。
可选地,为了提高任务请求处理效率,节省时间,步骤S15还包括:
E2、当所述线程管理队列中空闲线程数目为零时,创建新线程,并将所述新线程的句柄加入线程管理队列中。
具体地,以一个应用场景为例,根据微控制器系统中应用程序的使用情况,评估所需的线程数目为N,预先创建具有N个地址缓冲区的线程管理队列QPOOL,创建N个线程,并为每个线程创建一个线程私有邮箱,所述线程阻塞于自身的私有邮箱,将线程的句柄存入线程管理队列QPOOL中;根据当前应用程序的使用情况,评估相关数据或命令请求的大小,创建任务缓冲队列QBUF,用于存放相关数据或命令请求;创建线程THPOOL,用于管理线程管理队列QPOOL,线程THPOOL阻塞于缓冲队列QBUF。当微控制器系统中的应用程序接收到要处理的数据或命令请求时,将数据或命令存入预先创建的缓冲队列QBUF中,这时线程管理队列的管理线程THPOOL将被唤醒,管理线程THPOOL从所述缓冲队列QBUF中得到要处理的数据或命令请求,然后判断接收的数据或命令请求的数量是否大于空闲线程的数量,如果接收的数据或命令请求的数量大于空闲线程的数量,则先获取数据或命令请求的优先级,所述管理线程THPOOL根据数据或命令请求的优先级高低顺序从线程管理队列QPOOL中调取空闲线程的句柄,通过句柄查找句柄对应标识的空闲线程,将要处理的数据或命令请求传递给空闲线程的私有邮箱,从而唤醒所述空闲线程处理该数据或命令请求。当该数据或命令请求处理完成后,用于处理该数据或命令请求的线程将自身的句柄重新存入线程管理队列QPOOL中,并进入空闲状态,直到再次被线程THPOOL唤醒,并进入下一轮数据或命令请求的处理,以此解决相关的并发问题。
在本发明第一实施例中,通过将接收的至少一个任务处理请求存入预创建的缓冲队列,从而唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述管理线程从预创建的线程管理队列中调取空闲线程的句柄,根据所述句柄对应的空闲线程处理所述任务处理请求。由于所述预创建的线程管理队列存入至少一个线程对应的句柄,而一个线程至少能够处理一个任务处理请求,因此该方法能够同时处理至少一个任务处理请求,并且,由于预先创建满足任务处理请求的缓冲队列和线程管理队列,占用内存少,因此,能够在占用较少内存的基础上实现并发任务的处理,同时,由于预创建的线程管理队列中存放的是空闲线程的句柄,管理线程被唤醒后直接从线程管理队列中调取句柄从而唤醒空闲线程处理任务,不需要遍历查找空闲线程,提高了处理效率。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
图2示出了本发明第二实施例提供的一种多任务处理装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。
该多任务处理装置包括:任务接收单元21、任务存入单元22、管理线程唤醒单元23、句柄调取单元24和任务处理单元25,其中:
任务接收单元21,用于接收至少一个任务处理请求。
其中,任务处理请求是指系统中应用程序接收到的任务处理请求,任务处理请求包括但不限于要处理的数据和命令请求。应用程序可以接收一个任务处理请求,也可以同时接收多个任务处理请求以便及时有效地完成大数据量或命令请求的处理。
任务存入单元22,用于将所述任务处理请求存入预创建的缓冲队列。
其中,所述预创建的缓冲队列是根据数据或命令请求的大小预先创建的用于存放数据或命令请求的队列。在接收到数据或命令请求后,将数据或命令请求存入缓冲队列,等待分配线程处理所述数据或命令请求。
可选地,为了便于提高分配空闲线程的效率,所述多任务处理装置还包括:
任务数量获取单元,用于获取任务处理请求数量。
第二优先级获取单元,用于当所述任务处理请求数量大于1时,获取所述任务处理请求的优先级。
具体地,预先为不同的任务处理请求设置对应的优先级,当接收到多个任务处理请求时,获取所述多个任务处理请求的对应的优先级。
第二任务存入单元,用于将所述任务处理请求根据优先级高低顺序存入预创建的缓冲队列。
具体地,在接收到任务处理请求后,先获取任务处理请求的数量;当所述任务处理请求数量大于1时,也即用户发起大数据量或并发命令请求,获取接收的各个任务处理请求的优先级;将任务处理请求按优先级的高低顺序依次存入预先创建的缓冲队列。
可选地,所述多任务处理装置还包括分类单元,用于根据任务处理请求实现的目的将任务处理请求进行分类。
管理线程唤醒单元23,用于唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄。
其中,预创建的线程管理队列中包括若干数量的地址缓冲区,用于存放线程对应的句柄。所述管理线程用于管理存有线程句柄的线程管理队列,该管理线程阻塞于缓冲队列。当缓冲队列为空时,所述管理线程处于挂起(或空闲)状态;当有任务处理请求存入缓冲队列时,所述管理线程被唤醒。所述预创建的线程管理队列存入至少一个线程对应的句柄,所述句柄用于标识线程,所述句柄包含线程的私有数据,其中,所述私有数据可以是变量、私有空间(该私有空间可以为邮箱、队列、栈等),所述变量包含线程创建后返回的值。
可选地,为了确定线程管理队列中地址缓冲区的数量,所述多任务处理装置还包括:
线程数目确定单元,用于根据当前系统中应用的使用情况确定预创建的线程数目。
具体地,每个地址缓冲区对应可存放一个线程,所述线程管理队列中的地址缓冲区存放线程的句柄,通过评估当前系统中应用的使用情况确定预先创建的线程数目,也即预先确定句柄的数目。一般来说,一个任务处理请求由一个线程处理。同时使用的应用越多,即并发的任务处理请求越多,需要的线程数目也越多。
句柄调取单元24,用于通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄。
可选地,所述多任务处理装置包括:
线程空间创建单元,用于为线程创建私有空间,所述线程阻塞于自身的私有空间。
具体地,在管理线程调取空闲线程的句柄之前,所处线程处于空闲状态,当管理线程通过调取线程的句柄将任务处理请求传递给线程的私有空间,线程的私有空间在接收到任务处理请求后唤醒线程。所述私有空间可以为线程私有邮箱,也可以为线程私有队列等。
可选地,为了优先处理指定的任务处理请求,所述多任务处理装置还包括:
判断单元,用于判断接收的任务处理请求数量是否大于空闲线程的数量;
优先级获取单元,用于在接收的任务处理请求数量大于空闲线程的数量时,获取所述任务处理请求的优先级;
此时,所述句柄调取单元用于通过所述管理线程根据任务处理请求的优先级高低顺序调取空闲线程的句柄。
任务处理单元25,用于根据所述句柄对应的空闲线程处理所述任务处理请求。
其中,所述句柄通过句柄中的私有数据,如变量中线程成功创建后返回的值,来查找对应的线程。所述任务处理单元25具体包括:
空闲线程唤醒模块,用于所述空闲线程的句柄将任务传递至所述空闲线程的私有空间,以唤醒所述空闲线程处理所述任务处理请求。
具体地,线程阻塞于其私有空间,当句柄将任务传递至空闲线程的私有空间,该空闲线程被唤醒处理任务处理请求。
可选地,为了提高任务请求处理效率,节省时间,所述任务处理单元25还包括:
新线程创建模块,用于当所述线程管理队列中空闲线程数目为零时,创建新线程,并将所述新线程的句柄加入线程管理队列中
在本发明第二实施例中,通过将接收的至少一个任务处理请求存入预创建的缓冲队列,从而唤醒预创建的用于管理预创建的线程管理队列的管理线程,所述管理线程从预创建的线程管理队列中调取空闲线程的句柄,根据所述句柄对应的空闲线程处理所述任务处理请求。由于所述预创建的线程管理队列存入至少一个线程对应的句柄,而一个线程至少能够处理一个任务处理请求,因此该方法能够同时处理至少一个任务处理请求,并且,由于预先创建满足任务处理请求的缓冲队列和线程管理队列,占用内存少,因此,能够在占用较少内存的基础上实现并发任务的处理,同时,由于预创建的线程管理队列中存放的是空闲线程的句柄,管理线程被唤醒后直接从线程管理队列中调取句柄从而唤醒空闲线程处理任务,不需要遍历查找空闲线程,提高了处理效率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (6)

1.一种多任务处理方法,其特征在于,所述方法包括:
接收至少一个任务处理请求;
将所述任务处理请求存入预创建的缓冲队列,所述缓冲队列为根据当前应用程序的使用情况评估相关数据或命令请求的大小得到;
根据当前系统中应用的使用情况确定预创建的线程数目;
唤醒预创建的用于管理存有句柄的预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄,所述预创建的线程管理队列中包括一个以上数量的地址缓冲区,所述地址缓冲区用于存放线程对应的句柄,所述句柄包含线程的私有数据;
为线程创建私有空间,所述线程阻塞于自身的私有空间,所述线程的私有空间在接收到任务处理请求后唤醒所述线程,所述私有空间为线程私有邮箱或线程私有队列;
通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄;
根据所述句柄对应的空闲线程处理所述任务处理请求;
当所述线程管理队列中空闲线程数目为零时,创建新线程,并将所述新线程的句柄加入线程管理队列中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述句柄对应的空闲线程处理所述任务处理请求,具体包括:
所述空闲线程的句柄将任务传递至所述空闲线程的私有空间,以唤醒所述空闲线程处理所述任务处理请求。
3.根据权利要求1或2所述的方法,其特征在于,在所述管理线程从预创建的线程管理队列中调取空闲线程的句柄之前,还包括:
判断接收的任务处理请求数量是否大于空闲线程的数量;
在接收的任务处理请求数量大于空闲线程的数量时,获取所述任务处理请求的优先级;
此时,所述管理线程从预创建的线程管理队列中调取空闲线程的句柄具体包括:所述管理线程所述管理线程根据任务处理请求的优先级高低顺序调取空闲线程的句柄。
4.一种多任务处理装置,其特征在于,所述装置包括:
任务接收单元:用于接收至少一个任务处理请求;
任务存入单元,用于将所述任务处理请求存入预创建的缓冲队列,所述缓冲队列为根据当前应用程序的使用情况评估相关数据或命令请求的大小得到;
线程数目确定单元,用于根据当前系统中应用的使用情况确定预创建的线程数目;
管理线程唤醒单元,用于唤醒预创建的用于管理存有句柄的预创建的线程管理队列的管理线程,所述预创建的线程管理队列存入至少一个线程对应的句柄,所述预创建的线程管理队列中包括一个以上数量的地址缓冲区,所述地址缓冲区用于存放线程对应的句柄,所述句柄包含线程的私有数据;
线程空间创建单元,用于为线程创建私有空间,所述线程阻塞于自身的私有空间;
句柄调取单元,用于通过所述管理线程从预创建的线程管理队列中调取空闲线程的句柄;
任务处理单元,用于根据所述句柄对应的空闲线程处理所述任务处理请求;
新线程创建模块,用于当所述线程管理队列中空闲线程数目为零时,创建新线程,并将所述新线程的句柄加入线程管理队列中。
5.根据权利要求4所述的装置,其特征在于,所述任务处理单元具体包括:
空闲线程唤醒模块,用于所述空闲线程的句柄将任务传递至所述空闲线程的私有空间,以唤醒所述空闲线程处理所述任务处理请求。
6.根据权利要求4或5所述的装置,其特征在于,所述多任务处理装置还包括:
判断单元,用于判断接收的任务处理请求数量是否大于空闲线程的数量;
优先级获取单元,用于在接收的任务处理请求数量大于空闲线程的数量时,获取所述任务处理请求的优先级;
此时,所述句柄调取单元用于通过所述管理线程根据任务处理请求的优先级高低顺序调取空闲线程的句柄。
CN201610908577.1A 2016-10-18 2016-10-18 一种多任务处理方法及装置 Expired - Fee Related CN106547612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610908577.1A CN106547612B (zh) 2016-10-18 2016-10-18 一种多任务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610908577.1A CN106547612B (zh) 2016-10-18 2016-10-18 一种多任务处理方法及装置

Publications (2)

Publication Number Publication Date
CN106547612A CN106547612A (zh) 2017-03-29
CN106547612B true CN106547612B (zh) 2020-10-20

Family

ID=58369310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610908577.1A Expired - Fee Related CN106547612B (zh) 2016-10-18 2016-10-18 一种多任务处理方法及装置

Country Status (1)

Country Link
CN (1) CN106547612B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107219874B (zh) * 2017-06-27 2019-06-04 新昌县美曼慧造机械科技有限公司 一种共享设备温度控制系统
CN108021434A (zh) * 2017-12-06 2018-05-11 浪潮软件集团有限公司 数据处理装置及其处理数据的方法、介质、存储控制器
CN108200134B (zh) * 2017-12-25 2021-08-10 腾讯科技(深圳)有限公司 请求消息管理方法及装置、存储介质
CN108509260B (zh) * 2018-01-31 2021-08-13 深圳市万普拉斯科技有限公司 线程识别处理方法、装置、计算机设备和存储介质
CN109189483A (zh) * 2018-08-02 2019-01-11 优视科技新加坡有限公司 任务执行的调控方法、装置、设备/终端/服务器及存储介质
CN109242428A (zh) * 2018-08-31 2019-01-18 邹平县供电公司 一种基于智能移动终端的业务提醒系统及方法
CN109542632A (zh) * 2018-11-30 2019-03-29 郑州云海信息技术有限公司 一种处理访问请求的方法及装置
CN111324427B (zh) * 2018-12-14 2023-07-28 深圳云天励飞技术有限公司 一种基于dsp的任务调度方法及装置
CN109800067A (zh) * 2018-12-15 2019-05-24 中国平安人寿保险股份有限公司 基于云监控的数据库连接优化方法、装置及相关设备
CN110297711B (zh) * 2019-05-16 2024-01-19 平安科技(深圳)有限公司 批量数据处理方法、装置、计算机设备及存储介质
CN111159236A (zh) * 2019-12-23 2020-05-15 五八有限公司 数据处理方法、装置、电子设备及存储介质
CN111259205B (zh) * 2020-01-15 2023-10-20 北京百度网讯科技有限公司 一种图数据库遍历方法、装置、设备及存储介质
CN111414244B (zh) * 2020-03-24 2022-04-08 中安云科科技发展(山东)有限公司 一种高效调用密码机的方法
CN111930425B (zh) * 2020-06-23 2022-06-10 联宝(合肥)电子科技有限公司 一种数据控制方法、装置以及计算机可读存储介质
CN116700965A (zh) * 2023-05-30 2023-09-05 北京瑞泰兴成工程技术有限公司 一种基于分布式的数据采集方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398521B2 (en) * 2003-09-30 2008-07-08 Intel Corporation Methods and apparatuses for thread management of multi-threading
CN102262564A (zh) * 2011-08-16 2011-11-30 天津市天祥世联网络科技有限公司 视频监控平台系统的线程池结构及实现方法
CN105426522A (zh) * 2015-12-07 2016-03-23 浪潮(北京)电子信息产业有限公司 一种文件系统性能统计方法与系统
CN106020954A (zh) * 2016-05-13 2016-10-12 深圳市永兴元科技有限公司 线程管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398521B2 (en) * 2003-09-30 2008-07-08 Intel Corporation Methods and apparatuses for thread management of multi-threading
CN102262564A (zh) * 2011-08-16 2011-11-30 天津市天祥世联网络科技有限公司 视频监控平台系统的线程池结构及实现方法
CN105426522A (zh) * 2015-12-07 2016-03-23 浪潮(北京)电子信息产业有限公司 一种文件系统性能统计方法与系统
CN106020954A (zh) * 2016-05-13 2016-10-12 深圳市永兴元科技有限公司 线程管理方法及装置

Also Published As

Publication number Publication date
CN106547612A (zh) 2017-03-29

Similar Documents

Publication Publication Date Title
CN106547612B (zh) 一种多任务处理方法及装置
CN1973266B (zh) 对或涉及用于计算装置的操作系统的改进
KR100509794B1 (ko) 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법
US9715406B2 (en) Assigning and scheduling threads for multiple prioritized queues
US8756613B2 (en) Scalable, parallel processing of messages while enforcing custom sequencing criteria
WO2019075842A1 (zh) 任务分配方法、装置、存储介质和计算机设备
CN108319495A (zh) 任务处理方法及装置
US20030233485A1 (en) Event queue
EP3005110A1 (en) Efficient priority-aware thread scheduling
CN111324427B (zh) 一种基于dsp的任务调度方法及装置
US20120311300A1 (en) Multiprocessor synchronization using region locks
CN109815007A (zh) 基于云监控的线程控制方法、装置、电子设备及存储介质
CN112099975B (zh) 一种消息处理方法及系统、存储介质
GB2483737A (en) Workflow scheduler for server cluster with blocking assignment of order sensitive flows and non blocking assignment of other flows
CN107515781B (zh) 一种基于多处理器的确定性任务调度及负载均衡系统
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
EP3208709B1 (en) Batch processing method and device for system invocation commands
CN103412790A (zh) 移动安全中间件的多核并发调度方法与系统
CN114327894A (zh) 资源分配方法、装置、电子设备及存储介质
CN114579323A (zh) 一种线程处理方法、装置、设备及介质
CN109819674B (zh) 计算机存储介质、嵌入式调度方法及系统
CN111597056B (zh) 一种分布式调度方法、系统、存储介质和设备
CN101017450B (zh) 管理资源请求的设备、系统和方法
CN103970597A (zh) 读写均衡的阻塞队列实现方法及装置
CN109165135B (zh) 一种数据管理方法、计算机可读存储介质及终端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201020

Termination date: 20211018