CN115599540A - 一种多线程调用系统及方法 - Google Patents
一种多线程调用系统及方法 Download PDFInfo
- Publication number
- CN115599540A CN115599540A CN202211178456.8A CN202211178456A CN115599540A CN 115599540 A CN115599540 A CN 115599540A CN 202211178456 A CN202211178456 A CN 202211178456A CN 115599540 A CN115599540 A CN 115599540A
- Authority
- CN
- China
- Prior art keywords
- thread
- task execution
- execution block
- message
- queue
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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
技术领域
本发明属于计算机技术领域,具体涉及一种多线程调用系统及方法。
背景技术
目前的多任务顺序执行方法中,比如图1的场景,任务A负责从外部请求中获取消息,同时将消息通过队列的方式传输给任务B,任务B从队列中获取消息后,对消息进行二次加工,然后将加工后的消息存放到业务处理层面的队列中,交由单独的业务处理服务进行处理,任务C是继任务B存放消息队列后,同步在业务处理层的应答队列中获取应答消息,并将应答消息返回给发起端。
传统的方法是将几个顺序执行的任务模块纳入到一个线程中顺序执行,当需要增加并发性,则直接通过增加线程数来解决。但这种方式有一个弊端:在顺序执行的多个流程块中,如果有一个任务块出故障或者处理慢了,就会导致该线程的整个流程处理速度变慢,导致该线程的资源被长时间占用,从而影响整个流程的并发性能问题。
发明内容
针对现有技术中的缺陷,本发明提供一种多线程调用系统及方法,提高系统的并发性。
第一方面,一种多线程调用系统,包括:
多个依次连接的任务执行块;每个任务执行块包括线程池,线程池包括多个线程;线程在空闲时进入阻塞状态;线程用于将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程;线程还用于被唤醒后,读取并处理与上一个任务执行块连接的消息队列中的待处理消息;
至少一个消息队列;消息队列连接在两个任务执行块之间,用于存储待处理消息;
监控线程:用于监控并动态调整所有线程池中线程的数量。
进一步地,多线程调用系统还包括:
至少一个信号队列;信号队列连接在两个任务执行块之间;信号队列用于存储事件对象;
线程具体用于进入阻塞状态前,生成事件对象,将事件对象放入与上一个任务执行块连接的信号队列中。
进一步地,线程具体用于:
将待处理消息放入与下一个任务执行块连接的消息队列后,从与下一个任务执行块连接的信号队列中读取事件对象,唤醒下一个任务执行块中事件对象对应的阻塞状态的线程。
进一步地,待处理消息通过处理外部请求消息得到、或者是处理与上一个任务执行块连接的消息队列中的待处理消息得到。
进一步地,监控线程具体用于:
监控信号队列中事件对象的数量;
当数量小于最小空闲线程数时,在与信号队列连接的后一个任务执行块的线程池中新增线程;
当数量大于初始线程数时,减少与信号队列连接的后一个任务执行块的线程池中的线程。
第二方面,一种多线程调用方法,在第一方面的系统上运行,包括:
任务执行块中线程在空闲时进入阻塞状态;
任务执行块的线程将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程;
任务执行块的线程被唤醒后,读取并处理与上一个任务执行块连接的消息队列中的待处理消息;
监控线程监控并动态调整所有线程池中线程的数量。
进一步地,线程在空闲时进入阻塞状态具体包括:
线程进入阻塞状态前,生成事件对象,将事件对象放入与上一个任务执行块连接的信号队列中。
进一步地,线程唤醒下一个任务执行块中阻塞状态的线程具体包括:
线程从与下一个任务执行块连接的信号队列中读取事件对象,唤醒下一个任务执行块中阻塞状态的线程。
进一步地,待处理消息通过处理外部请求消息得到、或者是处理与上一个任务执行块连接的消息队列中的待处理消息得到。
进一步地,监控线程动态调整所有线程池中线程的数量具体包括:
监控信号队列中事件对象的数量;
当数量小于最小空闲线程数时,在与信号队列连接的后一个任务执行块的线程池中新增线程;
当数量大于初始线程数时,减少与信号队列连接的后一个任务执行块的线程池中的线程。
由上述技术方案可知,本发明提供的多线程调用系统及方法,在流程的每个任务执行块中都设有线程池,并采用消息队列的方式传输数据,线程读取消息队列中的消息并执行,即使流程中某个任务执行块处理慢了或者被卡住了,该任务执行块中其它线程仍然可以正常执行,提高系统的并发性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为背景技术提供的传统方法执行多线程调用的示意图。
图2为实施例提供的多线程调用系统的示意图。
图3为实施例提供的多线程调用系统中调用方法的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例:
一种多线程调用系统,参见图2,包括:
多个依次连接的任务执行块;每个任务执行块包括线程池,线程池包括多个线程;线程在空闲时进入阻塞状态;线程用于将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程;线程还用于被唤醒后,读取并处理与上一个任务执行块连接的消息队列中的待处理消息;
至少一个消息队列;消息队列连接在两个任务执行块之间,用于存储待处理消息;
监控线程:用于监控并动态调整所有线程池中线程的数量。
在本实施例中,任务执行块的数量和排序方式可以根据场景需求或业务流程等确定。例如图2中任务执行块包括任务A执行块、任务B执行块、任务C执行块三个,其中任务A执行块作为服务端,接收外部请求消息,将外部请求消息放入与其连接的消息队列中,任务B执行块从与任务A执行块连接的消息队列中读取任务A执行块输出的待处理消息,任务C执行块从与任务B执行块连接的消息队列中读取任务B执行块输出的待处理消息。其中任务A执行块、任务B执行块、任务C执行块三个执行块分别设有一个线程池,每个线程池中线程的数量可以根据该任务执行块的工作量确定,不同线程池中线程的数量可以相同,也可以不同。例如图2中每个线程池包括N个线程。
在本实施例中,两个任务执行块之间设有消息队列,例如任务A执行块和任务B执行块之间设有一个消息队列A,任务B执行块和任务C执行块之间设有另一个消息队列B,消息队列中的元素遵循先进先出的原则。线程在空闲时进入阻塞状态,参见图3,例如任务B执行块和任务C执行块中的线程在读取待处理消息之前、以及任务A执行块的线程等待接收外部请求消息时,线程都会进入阻塞状态,等待被唤醒。线程将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程,例如任务A执行块的线程接收到外部请求消息并放入消息队列A后,唤醒任务B执行块中的线程,任务B执行块中的线程被唤醒后,从消息队列A中读取任务A执行块得到的待处理消息,并对待处理消息进行处理,再将处理得到的消息放入消息队列,唤醒任务C执行块中的线程,依次类推,任务C执行块中的线程被唤醒后,从消息队列中读取任务B执行块输出的待处理消息并进行处理后,放入消息队列中,供下一个任务执行块读取。该系统中线程只有在被唤醒后才去消息队列读取数据,避免了由于线程一直循环,占用cpu资源,影响性能的问题。
在本实施例中,监控线程监控所有线程池中线程的数量,并根据线程池的空闲情况动态调整线程池中线程的数量,达到资源的最优利用。例如当线程池中空闲线程过多时,可以减少线程,当线程池中空闲线程较少时,可以增加线程。
该多线程调用系统,在流程的每个任务执行块中都设有线程池,并采用消息队列的方式传输数据,线程读取消息队列中的消息并执行,即使流程中某个任务执行块处理慢了或者被卡住了,该任务执行块中其它线程仍然可以正常执行,使得整个流程依然能保持较高的并发性。
进一步地,在一些实施例中,多线程调用系统还包括:
至少一个信号队列;信号队列连接在两个任务执行块之间;信号队列用于存储事件对象;
线程具体用于进入阻塞状态前,生成事件对象,将事件对象放入与上一个任务执行块连接的信号队列中。
在本实施例中,线程池与线程池之间的通讯可以采用基于条件变量的信号机制实现,即两个任务执行块之间设有信号队列,用于存储事件对象,例如任务A执行块和任务B执行块之间设有一个信号队列,任务B执行块和任务C执行块之间设有另一个信号队列,信号队列中的元素遵循先进先出的原则。其中事件对象可以是Event相关的信号事件。Event对象可以是对c++线程间通讯涉及的信号进行的封装得到。例如如果是windows平台,可以通过WaitForSingleObject和CreateEventW等windows API函数进行线程间通讯。如果是Linux平台,可以通过pthread_cond_wait和pthread_cond_broadcast等方式来实现线程间通讯。
进一步地,在一些实施例中,线程具体用于:
将待处理消息放入与下一个任务执行块连接的消息队列后,从与下一个任务执行块连接的信号队列中读取事件对象,唤醒下一个任务执行块中事件对象对应的阻塞状态的线程。
在本实施例中,参见图3,任务B执行块中的线程在读取待处理消息之前,生成Event对象,并放入消息队列A中,设置线程为阻塞状态。线程将待处理消息放入消息队列后,需要唤醒下一个任务执行块中的线程读取数据,假设事件对象为Event对象,那么该线程从与下一个任务执行块连接的信号队列中读取Event对象,并调用Event的notify方法,唤醒下一个任务执行块中处于阻塞状态的线程,通知阻塞状态的线程消息队列中有消息。
进一步地,在一些实施例中,待处理消息通过处理外部请求消息得到、或者是处理与上一个任务执行块连接的消息队列中的待处理消息得到。
在本实施例中,作为服务端的任务A执行块可以直接将外部请求消息放入消息队列,也可以对外部请求消息进行处理后将得到的消息放入消息队列。作为业务端的任务B执行块等执行块可以对上一个任务执行块输出的消息进行处理后,将得到的消息放入消息队列,供下一个任务执行块读取。
进一步地,在一些实施例中,监控线程具体用于:
监控信号队列中事件对象的数量;
当数量小于最小空闲线程数时,在与信号队列连接的后一个任务执行块的线程池中新增线程;
当数量大于初始线程数时,减少与信号队列连接的后一个任务执行块的线程池中的线程。
在本实施例中,信号队列中事件对象的数量体现了线程池中处于阻塞状态的线程的数量,即体现了线程池中空闲的线程数量。如果信号队列中事件对象的数量较小时,说明线程池中线程资源存在不够用的情况,如果信号队列中事件对象的数量较大时,说明线程池中线程资源够用,甚至出现过多的情况。最小空闲线程数和初始线程数可以根据用户的实际需求进行限定,不同线程池的最小空闲线程数和初始线程数可以设置为相同,也可以不同。正常情况下,最小空闲线程数应小于初始线程数,任务执行块在正常执行过程中,空闲的线程应保证在最小空闲线程数~初始线程数之间。例如某个任务执行块常规情况下需要的线程数量较大时,可以将最小空闲线程数设为大数值。如果某个任务执行块常规情况下需要的线程数量较少时,可以将初始线程数设为小数值。
在本实施例中,假设最小空闲线程数设置为50,初始线程数设置为100,假设信号队列中事件对象的数量为49,小于50,说明线程池中线程资源存在不够用,此时需要在线程池中增加线程,直至信号队列中事件对象的数量达到最小空闲线程数,保证任务执行块的正常执行。假设信号队列中事件对象的数量为101,大于100,说明线程池中资源过多,需要销毁多余的线程,节约资源,此时减少线程池中的线程,直至信号队列中事件对象的数量小于初始线程数。
一种多线程调用方法,在上述系统上运行,包括:
任务执行块中线程在空闲时进入阻塞状态;
任务执行块的线程将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程;
任务执行块的线程被唤醒后,读取并处理与上一个任务执行块连接的消息队列中的待处理消息;
监控线程监控并动态调整所有线程池中线程的数量。
进一步地,线程在空闲时进入阻塞状态具体包括:
线程进入阻塞状态前,生成事件对象,将事件对象放入与上一个任务执行块连接的信号队列中。
进一步地,线程唤醒下一个任务执行块中阻塞状态的线程具体包括:
线程从与下一个任务执行块连接的信号队列中读取事件对象,唤醒下一个任务执行块中阻塞状态的线程。
进一步地,待处理消息通过处理外部请求消息得到、或者是处理与上一个任务执行块连接的消息队列中的待处理消息得到。
进一步地,监控线程动态调整所有线程池中线程的数量具体包括:
监控信号队列中事件对象的数量;
当数量小于最小空闲线程数时,在与信号队列连接的后一个任务执行块的线程池中新增线程;
当数量大于初始线程数时,减少与信号队列连接的后一个任务执行块的线程池中的线程。
本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种多线程调用系统,其特征在于,包括:
多个依次连接的任务执行块;每个所述任务执行块包括线程池,所述线程池包括多个线程;所述线程在空闲时进入阻塞状态;所述线程用于将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程;所述线程还用于被唤醒后,读取并处理与上一个任务执行块连接的所述消息队列中的待处理消息;
至少一个所述消息队列;所述消息队列连接在两个所述任务执行块之间,用于存储所述待处理消息;
监控线程:用于监控并动态调整所有所述线程池中线程的数量。
2.根据权利要求1所述多线程调用系统,其特征在于,所述多线程调用系统还包括:
至少一个信号队列;所述信号队列连接在两个所述任务执行块之间;所述信号队列用于存储事件对象;
所述线程具体用于进入阻塞状态前,生成所述事件对象,将所述事件对象放入与上一个任务执行块连接的所述信号队列中。
3.根据权利要求2所述多线程调用系统,其特征在于,所述线程具体用于:
将所述待处理消息放入与下一个任务执行块连接的消息队列后,从与下一个任务执行块连接的所述信号队列中读取所述事件对象,唤醒下一个任务执行块中所述事件对象对应的阻塞状态的线程。
4.根据权利要求2所述多线程调用系统,其特征在于,
所述待处理消息通过处理外部请求消息得到、或者是处理与上一个任务执行块连接的所述消息队列中的待处理消息得到。
5.根据权利要求2所述多线程调用系统,其特征在于,所述监控线程具体用于:
监控所述信号队列中事件对象的数量;
当所述数量小于最小空闲线程数时,在与所述信号队列连接的后一个任务执行块的线程池中新增线程;
当所述数量大于初始线程数时,减少与所述信号队列连接的后一个任务执行块的线程池中的线程。
6.一种多线程调用方法,其特征在于,在权利要求1-5中任一权利要求所述的系统上运行,包括:
任务执行块中线程在空闲时进入阻塞状态;
任务执行块的线程将待处理消息放入与下一个任务执行块连接的消息队列后,唤醒下一个任务执行块中阻塞状态的线程;
任务执行块的线程被唤醒后,读取并处理与上一个任务执行块连接的所述消息队列中的待处理消息;
监控线程监控并动态调整所有所述线程池中线程的数量。
7.根据权利要求6所述多线程调用方法,其特征在于,线程在空闲时进入阻塞状态具体包括:
线程进入阻塞状态前,生成事件对象,将所述事件对象放入与上一个任务执行块连接的信号队列中。
8.根据权利要求7所述多线程调用方法,其特征在于,线程唤醒下一个任务执行块中阻塞状态的线程具体包括:
线程从与下一个任务执行块连接的所述信号队列中读取所述事件对象,唤醒下一个任务执行块中阻塞状态的线程。
9.根据权利要求7所述多线程调用方法,其特征在于,
所述待处理消息通过处理外部请求消息得到、或者是处理与上一个任务执行块连接的所述消息队列中的待处理消息得到。
10.根据权利要求7所述多线程调用方法,其特征在于,监控线程动态调整所有所述线程池中线程的数量具体包括:
监控所述信号队列中事件对象的数量;
当所述数量小于最小空闲线程数时,在与所述信号队列连接的后一个任务执行块的线程池中新增线程;
当所述数量大于初始线程数时,减少与所述信号队列连接的后一个任务执行块的线程池中的线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211178456.8A CN115599540A (zh) | 2022-09-26 | 2022-09-26 | 一种多线程调用系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211178456.8A CN115599540A (zh) | 2022-09-26 | 2022-09-26 | 一种多线程调用系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599540A true CN115599540A (zh) | 2023-01-13 |
Family
ID=84844476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211178456.8A Pending CN115599540A (zh) | 2022-09-26 | 2022-09-26 | 一种多线程调用系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599540A (zh) |
-
2022
- 2022-09-26 CN CN202211178456.8A patent/CN115599540A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
US5991790A (en) | Generation and delivery of signals in a two-level, multithreaded system | |
US8612986B2 (en) | Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
US6845504B2 (en) | Method and system for managing lock contention in a computer system | |
US8056083B2 (en) | Dividing a computer job into micro-jobs for execution | |
EP2972852B1 (en) | System management interrupt handling for multi-core processors | |
CN111427751A (zh) | 基于异步处理机制对业务进行处理的方法及系统 | |
JP4418752B2 (ja) | データ処理システムにおいてスレッドを管理する方法と装置 | |
CN111813520B (zh) | 线程调度方法、装置、存储介质及电子设备 | |
EP4242842A1 (en) | Thread priority adjusting method, terminal, and computer readable storage medium | |
US9229716B2 (en) | Time-based task priority boost management using boost register values | |
WO2011104812A1 (ja) | マルチコアプロセッサシステム、割込プログラム、および割込方法 | |
US8601488B2 (en) | Controlling the task switch timing of a multitask system | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN113835854A (zh) | 一种任务处理方法及装置 | |
CN115599540A (zh) | 一种多线程调用系统及方法 | |
US20080313652A1 (en) | Notifying user mode scheduler of blocking events | |
CN113032154B (zh) | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 | |
CN116048756A (zh) | 一种队列调度方法、装置及相关设备 | |
US11461134B2 (en) | Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor | |
US10949367B2 (en) | Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof | |
CN117407054A (zh) | 中断处理方法、电子设备和存储介质 | |
CN106484536B (zh) | 一种io调度方法、装置和设备 |
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 |