CN111427686B - 一种处理器多线程并发方法 - Google Patents
一种处理器多线程并发方法 Download PDFInfo
- Publication number
- CN111427686B CN111427686B CN202010209652.1A CN202010209652A CN111427686B CN 111427686 B CN111427686 B CN 111427686B CN 202010209652 A CN202010209652 A CN 202010209652A CN 111427686 B CN111427686 B CN 111427686B
- Authority
- CN
- China
- Prior art keywords
- thread
- cpu
- cpu core
- threads
- cores
- 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.)
- Active
Links
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/5061—Partitioning or combining of resources
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种处理器多线程并发方法,依次打开多个线程,优先打开的线程独占占用率为零的CPU核心,直至将所有的CPU核心占满,当打开线程数量大于CPU核心的数量,判断CPU核心占用率,占用率较低的CPU核心优先开始分片,而该CPU核心先前打开的线程进入挂起状态,之后再打开线程重复本步骤,当关闭独占CPU核心的线程时,判断CPU核心的分片情况,分片最多的CPU核心将挂起状态中占用率最高的线程转移至无占用率的CPU核心中,并同时启动该线程,当关闭非独占CPU核心的线程时,判断该CPU核心中线程的占用率,占用率较低的线程启动,本发明方法简单、合理,自动识别CPU核心是否为空,大大降低了处理器的负荷,从而提高处理器的性能。
Description
技术领域
本发明涉及处理器多线程并发方法技术领域,具体为一种处理器多线程并发方法。
背景技术
中央处理器作为计算机***的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。
并发,在操作***中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
传统处理器多线程并发存在如果线程打开过多,导致CPU负荷较大,且多线程只能依次等待,处理效率较低,导致空的CPU资源浪费,因此,亟待一种改进的技术来解决现有技术中所存在的这一问题。
发明内容
本发明的目的在于提供一种处理器多线程并发方法,本发明方法简单、合理,通过将CPU核心进行分片,实现新增并超过核心数量的线程,合并至CPU核心的分片区域内,并优先执行,以提高优先级,而在关闭线程的过程中,自动识别CPU核心是否为空,如果为空,将分片区域内的占用较高的线程转移至空的CPU核心内,并且启动,大大降低了处理器的负荷,从而提高处理器的性能,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种处理器多线程并发方法,包括以下步骤:
步骤一:依次打开多个线程;
步骤二:优先打开的线程独占占用率为零的CPU核心,直至将所有的CPU核心占满;
步骤三:当打开线程数量大于CPU核心的数量,判断CPU核心占用率,占用率较低的CPU核心优先开始分片,而该CPU核心先前打开的线程进入挂起状态,随后再继续打开线程,再次判断CPU核心的占用率,占用率较低的CPU核心进行分片,该CPU核心先前打开的线程进入挂起状态,之后再打开线程重复本步骤;
步骤四:当关闭独占CPU核心的线程时,判断CPU核心的分片情况,分片最多的CPU核心将挂起状态中占用率最高的线程转移至无占用率的CPU核心中,并同时启动该线程,当关闭非独占CPU核心的线程时,判断该CPU核心中线程的占用率,占用率较低的线程启动。
优选的,所述步骤三中分片为将CPU运行时间划分成若干个时间片。
优选的,所述步骤三中位于同一个CPU核心中的线程相互之间不抢占资源,位于不同CPU核心中的线程可以同时进行。
优选的,所述步骤二、三、四中CPU核心由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据。
优选的,所述步骤二、三、四中CPU的占用率为进程在一段时间内占用的CPU时间占总的CPU时间的百分比。
与现有技术相比,本发明的有益效果是:
本发明方法简单、合理,通过将CPU核心进行分片,实现新增并超过核心数量的线程,合并至CPU核心的分片区域内,并优先执行,以提高优先级,而在关闭线程的过程中,自动识别CPU核心是否为空,如果为空,将分片区域内的占用较高的线程转移至空的CPU核心内,并且启动,大大降低了处理器的负荷,从而提高处理器的性能。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种技术方案:一种处理器多线程并发方法,包括以下步骤:
步骤一:依次打开多个线程;
步骤二:优先打开的线程独占占用率为零的CPU核心,直至将所有的CPU核心占满;
步骤三:当打开线程数量大于CPU核心的数量,判断CPU核心占用率,占用率较低的CPU核心优先开始分片(时间片),而该CPU核心先前打开的线程进入挂起状态,随后再继续打开线程,再次判断CPU核心的占用率,占用率较低的CPU核心进行分片,该CPU核心先前打开的线程进入挂起状态,之后再打开线程重复本步骤;
步骤四:当关闭独占CPU核心的线程时,判断CPU核心的分片情况,分片最多的CPU核心将挂起状态中占用率最高的线程转移至无占用率的CPU核心中,并同时启动该线程,当关闭非独占CPU核心的线程时,判断该CPU核心中线程的占用率,占用率较低的线程启动。
步骤三中位于同一个CPU核心中的线程相互之间不抢占资源,位于不同CPU核心中的线程可以同时进行;步骤二、三、四中CPU核心由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据,CPU的占用率为进程在一段时间内占用的CPU时间占总的CPU时间的百分比。
实施例一:采用4核CPU
依次打开四个线程;第一、第二、第三、第四线程分别独占CPU的四个核心;第一线程占用266kb、第二线程占用153kb、第三线程占用237kb、第四线程占用105kb,随后打开第五个线程,第五个线程占用为139kb,第四CPU核心开始分片,此时,第四线程位于第四CPU核心的第一分片内,第五线程位于第四CPU核心的第二分片内,第四CPU核心内的第四线程进入挂起状态,随后再继续打开第六线程,第六线程占用236kb,再次判断CPU核心的占用率,第二CPU核心开始分片,此时,第二线程位于第四CPU核心的第一分片内,第六线程位于第二CPU核心的第二分片内,第二CPU核心开始内的第二线程进入挂起状态;关闭第一CPU核心的第一线程,判断CPU核心的分片情况,无分片情况,将第二CPU核心的第二线程转移至第一CPU核心内,并同时启动第二线程,再次关闭第一CPU核心的第二线程,第四CPU核心中的第四线程转移至第一CPU核心中,并同时启动第四线程。
实施例二:采用4核CPU
依次打开四个线程;第一、第二、第三、第四线程分别独占CPU的四个核心;第一线程占用221kb、第二线程占用94kb、第三线程占用125kb、第四线程占用204kb,随后打开第五个线程,第五个线程占用为152kb,第二CPU核心开始分片,此时,第二线程位于第二CPU核心的第一分片内,第五线程位于第二CPU核心的第二分片内,第二CPU核心内的第二线程进入挂起状态,随后再继续打开第六线程,再次判断CPU核心的占用率,第三CPU核心开始分片,此时,第三线程位于第三CPU核心的第一分片内,第六线程位于第三CPU核心的第二分片内,第三CPU核心开始内的第三线程进入挂起状态;关闭第三CPU核心的第六线程,此时,第三CPU核心的第三线程重新启动,关闭第二CPU核心的第二线程,无变化。
实施例三:采用6核CPU
依次打开四个线程;第一、第二、第三、第四、第五、第六线程分别独占CPU的六个核心;第一线程占用103kb、第二线程占用244kb、第三线程占用235kb、第四线程占用211kb、第五线程占用312kb、第六线程占用68kb,随后打开第七个线程,第七个线程占用为56kb,第六CPU核心开始分片,此时,第六线程位于第六CPU核心的第一分片内,第七线程位于第六CPU核心的第二分片内,第六CPU核心内的第六线程进入挂起状态,随后打开第八线程,第八线程占用168kb,再次判断CPU核心的占用率,第一CPU核心开始分片,此时,第一线程位于第一CPU核心的第一分片内,第八线程位于第一CPU核心的第二分片内,第一CPU核心开始内的第一线程进入挂起状态,接着打开第九线程,第九线程占用201kb,再次判断CPU核心的占用率,第六CPU核心开始分片,新增第三分片,此时,第六线程位于第六CPU核心的第一分片内,第七线程位于第六CPU核心的第二分片内,第九线程位于第六CPU核心的第三分片内,第六CPU核心内的第七线程进入挂起状态;关闭第三CPU核心的第三线程,此时,第六CPU核心的第六线程转移至第三CPU核心,并启动。
本发明方法简单、合理,通过将CPU核心进行分片,实现新增并超过核心数量的线程,合并至CPU核心的分片区域内,并优先执行,以提高优先级,而在关闭线程的过程中,自动识别CPU核心是否为空,如果为空,将分片区域内的占用较高的线程转移至空的CPU核心内,并且启动,大大降低了处理器的负荷,从而提高处理器的性能。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种处理器多线程并发方法,其特征在于:包括以下步骤:
步骤一:依次打开多个线程;
步骤二:优先打开的线程独占占用率为零的CPU核心,直至将所有的CPU核心占满;
步骤三:当打开线程数量大于CPU核心的数量,判断CPU核心占用率,占用率较低的CPU核心优先开始分片,而该CPU核心先前打开的线程进入挂起状态,随后再继续打开线程,再次判断CPU核心的占用率,占用率较低的CPU核心进行分片,该CPU核心先前打开的线程进入挂起状态,之后再打开线程重复本步骤;
步骤四:当关闭独占CPU核心的线程时,判断CPU核心的分片情况,分片最多的CPU核心将挂起状态中占用率最高的线程转移至无占用率的CPU核心中,并同时启动该线程,当关闭非独占CPU核心的线程时,判断该CPU核心中线程的占用率,占用率较低的线程启动。
2.根据权利要求1所述的一种处理器多线程并发方法,其特征在于:所述步骤三中分片为将CPU运行时间划分成若干个时间片。
3.根据权利要求1所述的一种处理器多线程并发方法,其特征在于:所述步骤三中位于同一个CPU核心中的线程相互之间不抢占资源,位于不同CPU核心中的线程可以同时进行。
4.根据权利要求1所述的一种处理器多线程并发方法,其特征在于:所述步骤二、三、四中CPU核心由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据。
5.根据权利要求1所述的一种处理器多线程并发方法,其特征在于:所述步骤二、三、四中CPU的占用率为进程在一段时间内占用的CPU时间占总的CPU时间的百分比。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010209652.1A CN111427686B (zh) | 2020-03-23 | 2020-03-23 | 一种处理器多线程并发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010209652.1A CN111427686B (zh) | 2020-03-23 | 2020-03-23 | 一种处理器多线程并发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111427686A CN111427686A (zh) | 2020-07-17 |
CN111427686B true CN111427686B (zh) | 2023-03-24 |
Family
ID=71549396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010209652.1A Active CN111427686B (zh) | 2020-03-23 | 2020-03-23 | 一种处理器多线程并发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427686B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281751B (zh) * | 2020-09-28 | 2024-01-02 | 上海商汤智能科技有限公司 | 芯片*** |
CN112462926B (zh) * | 2020-12-09 | 2021-07-30 | 北京元心科技有限公司 | 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 |
CN114116068B (zh) * | 2021-12-02 | 2023-06-02 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131652A (zh) * | 2006-08-21 | 2008-02-27 | 英业达股份有限公司 | 多核多中央处理器的执行线程分配方法 |
WO2012093496A1 (ja) * | 2011-01-07 | 2012-07-12 | 富士通株式会社 | マルチタスクスケジューリング方法、およびマルチコアプロセッサシステム |
CN103838779A (zh) * | 2012-11-27 | 2014-06-04 | 深圳市腾讯计算机***有限公司 | 复用空闲计算资源的云转码方法及***、分布式文件装置 |
CN105677487A (zh) * | 2016-01-12 | 2016-06-15 | 浪潮通用软件有限公司 | 一种控制资源占用的方法及装置 |
CN106095544A (zh) * | 2016-05-31 | 2016-11-09 | 北京小米移动软件有限公司 | 中央处理器控制方法及装置 |
CN106293902A (zh) * | 2015-05-28 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器调度方法及*** |
CN107402807A (zh) * | 2017-07-18 | 2017-11-28 | 浪潮金融信息技术有限公司 | 在计算机***中有效提升多任务执行效率的方法、***和处理器 |
CN108037994A (zh) * | 2017-11-15 | 2018-05-15 | 中国电子科技集团公司第三十二研究所 | 一种支持异构环境下多核并行处理的调度机制 |
CN110659130A (zh) * | 2019-07-25 | 2020-01-07 | 平安科技(深圳)有限公司 | Cpu使用率自适应调整方法、装置、终端及存储介质 |
-
2020
- 2020-03-23 CN CN202010209652.1A patent/CN111427686B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131652A (zh) * | 2006-08-21 | 2008-02-27 | 英业达股份有限公司 | 多核多中央处理器的执行线程分配方法 |
WO2012093496A1 (ja) * | 2011-01-07 | 2012-07-12 | 富士通株式会社 | マルチタスクスケジューリング方法、およびマルチコアプロセッサシステム |
CN103838779A (zh) * | 2012-11-27 | 2014-06-04 | 深圳市腾讯计算机***有限公司 | 复用空闲计算资源的云转码方法及***、分布式文件装置 |
CN106293902A (zh) * | 2015-05-28 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器调度方法及*** |
CN105677487A (zh) * | 2016-01-12 | 2016-06-15 | 浪潮通用软件有限公司 | 一种控制资源占用的方法及装置 |
CN106095544A (zh) * | 2016-05-31 | 2016-11-09 | 北京小米移动软件有限公司 | 中央处理器控制方法及装置 |
CN107402807A (zh) * | 2017-07-18 | 2017-11-28 | 浪潮金融信息技术有限公司 | 在计算机***中有效提升多任务执行效率的方法、***和处理器 |
CN108037994A (zh) * | 2017-11-15 | 2018-05-15 | 中国电子科技集团公司第三十二研究所 | 一种支持异构环境下多核并行处理的调度机制 |
CN110659130A (zh) * | 2019-07-25 | 2020-01-07 | 平安科技(深圳)有限公司 | Cpu使用率自适应调整方法、装置、终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
"Efficient Round Robin Scheduling Algorithm with Dynamic Time Slice";Lipika Datta;《International Journal of Education and Management Engineering》;20150630;第5卷(第2期);1-10 * |
"线程级多任务并行动态调度研究";陈楠;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20200115(第2020年01期);I137-74 * |
Also Published As
Publication number | Publication date |
---|---|
CN111427686A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427686B (zh) | 一种处理器多线程并发方法 | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
TW502173B (en) | Method and apparatus to force a thread switch in a multithreaded processor | |
US9632822B2 (en) | Multi-core device and multi-thread scheduling method thereof | |
US7155600B2 (en) | Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor | |
KR100936601B1 (ko) | 멀티 프로세서 시스템 | |
US8996811B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
JP2003523561A (ja) | 組込み型プロセッサにおいてゼロタイムコンテクストスイッチを用いて命令レベルをマルチスレッド化するシステムおよび方法 | |
CN107203428B (zh) | 一种基于Xen的VCPU多核实时调度算法 | |
JPH04195577A (ja) | マルチプロセッサにおけるタスクスケジューリング方式 | |
JPH03144847A (ja) | マルチプロセッサ・システムおよびそのプロセス同期方法 | |
WO2005098623A2 (en) | Prerequisite-based scheduler | |
WO2021218633A1 (zh) | Cpu指令处理方法、控制器和中央处理单元 | |
CN112612615B (zh) | 基于多线程内存分配和上下文调度的数据处理方法及*** | |
CN109343960A (zh) | 一种Linux***的任务调度方法、***及相关装置 | |
JPH02187825A (ja) | コンピュータ | |
CN103309734A (zh) | 基于优先级分组的嵌入式任务调度方法 | |
CN113946445A (zh) | 一种基于asic的多线程模块及多线程控制方法 | |
CN103677959A (zh) | 一种基于组播的虚拟机集群迁移方法及*** | |
WO2013078733A1 (zh) | 在mvp处理器中消除纹理延迟和寄存器管理的方法 | |
CN115686863A (zh) | 一种混合轮询方法、装置、设备及可读存储介质 | |
CN114398167A (zh) | 一种针对cpu-gpu两级并行计算的自动负载均衡方法 | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
CN106325983A (zh) | 一种内存占用小、支持并发的微程模型及调度方法 | |
CN115981829B (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 |