CN111427686B - 一种处理器多线程并发方法 - Google Patents

一种处理器多线程并发方法 Download PDF

Info

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
Application number
CN202010209652.1A
Other languages
English (en)
Other versions
CN111427686A (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.)
Guiyang Block Data City Construction Co ltd
Original Assignee
Guiyang Block Data City Construction Co ltd
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 Guiyang Block Data City Construction Co ltd filed Critical Guiyang Block Data City Construction Co ltd
Priority to CN202010209652.1A priority Critical patent/CN111427686B/zh
Publication of CN111427686A publication Critical patent/CN111427686A/zh
Application granted granted Critical
Publication of CN111427686B publication Critical patent/CN111427686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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时间的百分比。
CN202010209652.1A 2020-03-23 2020-03-23 一种处理器多线程并发方法 Active CN111427686B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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使用率自适应调整方法、装置、终端及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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