CN110377494A - 一种解决cpu优化引发的多线程问题的方法及系统 - Google Patents

一种解决cpu优化引发的多线程问题的方法及系统 Download PDF

Info

Publication number
CN110377494A
CN110377494A CN201810331891.7A CN201810331891A CN110377494A CN 110377494 A CN110377494 A CN 110377494A CN 201810331891 A CN201810331891 A CN 201810331891A CN 110377494 A CN110377494 A CN 110377494A
Authority
CN
China
Prior art keywords
cpu
multithreading
optimization
memorybarrier
memory grid
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
Application number
CN201810331891.7A
Other languages
English (en)
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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810331891.7A priority Critical patent/CN110377494A/zh
Publication of CN110377494A publication Critical patent/CN110377494A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种解决CPU优化引发的多线程问题的方法,涉及互联网应用开发领域,包括步骤:在程序代码中设置内存栅障后进行CPU优化,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排。本发明提供的解决CPU优化引发的多线程问题的方法,可有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠。

Description

一种解决CPU优化引发的多线程问题的方法及系统
技术领域
本发明涉及互联网应用开发领域,具体涉及一种解决CPU优化引发的多线程问题的方法及系统。
背景技术
通常编译器是将“一种语言”翻译为“另一种语言”的程序,在用C++语言编写程序代码时,通常需要使用到C++编译器对C++程序代码进行编译,将其转换成最终的可执行程序。并且,C++编译器中一般设有各种各样的编译选项,其中优化选项就是其中常用的一个编译选项。
而编译器优化选项内容非常多,常见的编译器优化内容包括:函数内嵌、无用代码删除、标准化循环结构、循环体展开、循环体合并、分裂、数组填充等等。其中无用代码删除的优化指的是C++编译器认为某些代码逻辑可以被省略,或者为了让程序运行的更为高效,可能对原有的代码书写顺序进行调整,也就是编译后对指令进行了重新的调整,一般情况下,对指令进行的重新调整,是在单线程情况下进行的,而且,编译器优化后的程序运行结果与优化前的运行结果是一样的。
然而,有时根据实际需求,在进行编译器编译时,并未选择优化选项,而即使程序在编译器编译后没有经过优化,也有可能在程序运行时被CPU优化。CPU优化是为了整个系统执行的效率更为高效,在CPU优化过程中,有可能会对某些指令进行重新排序,当在单线环境下时,经过CPU优化后程序运行结果与优化前的运行结果是一致,但是,CPU存在多线程运行的情况,当程序中的两个函数在多线程情况下进行CPU优化时,可能会出现结果异常的现象,例如,无论两个函数代码执行顺序如何,在进行CPU优化前,都不可能出现经过CPU优化后的结果。该种结果异常的现象为编程的一大缺陷,是编程时不希望出现的,因此,需要解决CPU优化导致的多线程引起结果异常的问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种解决CPU优化引发的多线程问题的方法,可有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠。
为达到以上目的,本发明采取的技术方案是:
一种解决CPU优化引发的多线程问题的方法,包括步骤:在程序代码中设置内存栅障后进行CPU优化,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排。
本发明的解决CPU优化引发的多线程问题的方法通过设置内存栅障,避免指令重排,从而可有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠。
在上述技术方案的基础上,所述内存栅障为MemoryBarrier函数,该函数为内存栅障中常用的函数,应用较为广泛,使用起来更加方便。
在上述技术方案的基础上,当在Windows操作系统中运行时,直接调用Windows操作系统中的MemoryBarrier函数。
在上述技术方案的基础上,当不是在Windows操作系统中运行时,则先定义当前操作系统下的MemoryBarrier函数,再调用该操作系统下的MemoryBarrier函数。
通过上述实现方式,一方面,解决了在非Windows操作系统上,有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠;另一方面,使得该段程序代码通用性非常强,不管是在Windows操作系统或其他操作系统中,均可使用相同的一段程序代码,只需在非Windows操作系统中对_MemoryBarrier函数进行预定义即可,从而保证了程序代码的跨平台移植性;再者,由于此段代码的通用性很强,可大大节省了程序开发时间,提高编程效率。
本发明还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述解决CPU优化引发的多线程问题的方法步骤。
本发明还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述解决CPU优化引发的多线程问题的方法步骤。
本发明还提供了一种解决CPU优化引发的多线程问题的系统,,所述系统包括设置模块和优化模块;
所述设置模块用于预先在程序代码中设置内存栅障,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排;
所述优化模块用于在程序代码设置内存栅障后对程序代码进行CPU优化。
在上述技术方案的基础上,所述内存栅障为MemoryBarrier函数。
在上述技术方案的基础上,所述系统还包括判断模块和第一处理模块;
所述判断模块用于判断当前操作系统是否为Windows操作系统;
所述第一处理模块用于当所述判断模块判断当前操作系统是Windows操作系统时直接调用Windows操作系统中的MemoryBarrier函数。
在上述技术方案的基础上,所述系统还包括第二处理模块,所述第二处理模块用于当所述判断模块判断当前操作系统不是Windows操作系统时,则先定义当前操作系统下的MemoryBarrier函数,再调用该操作系统下的MemoryBarrier函数。
附图说明
图1为本发明实施例中解决CPU优化引发的多线程问题的方法流程图;
图2为本发明实施例中电子设备的连接框图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供了一种解决CPU优化引发的多线程问题的方法,包括步骤:
S1:在程序代码中设置内存栅障,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排;
S2:对程序代码进行CPU优化。
通过设置内存栅障,避免指令重排,从而可有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠。
其中,内存栅障,也称内存屏障、内存栅栏或屏障指令等,是一类同步屏障指令,是CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作。
大多数现代计算机为了提高性能而采取乱序执行,这使得内存屏障成为必须。语义上,内存屏障之前的所有写操作都要写入内存;内存屏障之后的读操作都可以获得同步屏障之前的写操作的结果,因此,对于敏感的程序块,写操作之后、读操作之前可以插入内存屏障。
具体地,在本发明实施例中使用到的内存栅障为MemoryBarrier函数,该函数为内存栅障中常用的函数,应用较为广泛,使用起来更加方便。
本发明实施例以如下示例来进行详细说明,在示例中创建两个线程,分别为ThreadFunc1和ThreadFunc2,这两个线程中相互读写x、y、r1、r2这四个全局变量。其中在线程ThreadFunc1中,首先将x的值设置为1,然后将r1的值设置为y;在线程ThreadFunc2中,首先将y的值设置为1,然后将r2的值设置为x的值。
ThreadFunc1和ThreadFunc2简要的代码如下:
根据上述代码,如果ThreadFunc1与ThreadFunc2同时执行,有下面两类指令执行顺序,分别为非交错执行和交错执行,且非交错执行包括有两种不同的指令执行情况,交错执行包括有四种不同的指令执行情况,共计有六种不同的指令执行情况,具体介绍如下:
第一类:非交错执行
此处非交错执行的意思就是,ThreadFunc1与ThreadFunc2中的代码按顺序执行,指令不重叠在一起,那么就有下面的两种不同的指令执行情况:
a)ThreadFunc1先执行
此种情况下的ThreadFunc1先执行后,ThreadFunc2执行,那么其指令执行顺序如下
x=1
r1=y
y=1
r2=x
那么执行完后,r1的值为0,r2的值为1;
b)ThreadFunc2先执行
此种情况下ThreadFunc2先只收,ThreadFunc1执行,那么其指令执行顺序如下
y=1
r2=x
x=1
r1=y
那么执行完成后r1的值为1,r2的值为0。
第二类:交错执行
此处的交错执行的意思就是,ThreadFunc1与ThreadFunc2中的代码可能交错重叠在一起执行,那么就有下面的四种不同的指令执行情况:
a)交错执行1
该种情况中ThreadFunc1先执行1条指令,然后ThreadFunc2连续执行两条指令,最后ThreadFunc1执行第二条指令,即下面的执行顺序
x=1
y=1
r2=x
r1=y
那么执行完成后,r1和r2的值就都为1;
b)交错执行2
该种情况中ThreadFunc1先执行1条指令,然后ThreadFunc2执行一条指令,然后ThreadFunc1执行第二条指令,最后ThreadFunc2执行第二条指令,即下面的执行顺序
x=1
y=1
r1=y
r2=x
那么执行完成后,r1和r2的值都为1;
c)交错执行3
该种情况中ThreadFunc2先执行1条指令,然后ThreadFunc1连续执行两条指令,最后ThreadFunc2执行第二条指令,即下面的执行顺序
y=1
x=1
r1=y
r2=x
那么执行完成后,r1和r2的值都为1;
d)交错执行4
该种情况中ThreadFunc2先执行1条指令,然后ThreadFunc1执行一条指令,然后ThreadFunc2执行第二条指令,最后ThreadFunc1执行第二条指令,即下面的执行顺序
y=1
x=1
r2=x
r1=y
那么执行完成后,r1和r2的值都为1;
通过上述六种不同指令执行顺序的情况分析,可知,不管是非交错执行还是交错执行,r1和r2的值都不可能同时为0。
但是经过测试发现,在最终的执行结果中,确实会发生r1和r2同时为0的情况,原因在于CPU在运行时刻可能对编译之后的指令执行顺序进行了重新排列。
当ThreadFunc1中的指令调整了先后顺序变成了下面的顺序:
r1=y
x=1
当ThreadFunc2中的指令也调整了先后顺序变成了下面的顺序:
r2=x
y=1
那么在ThreadFunc1与ThreadFunc2交错执行时,当ThreadFunc1和ThreadFunc2的指令均发生重排后,就可能还会出现下面的两种情况:
e)交错执行5
r1=y
r2=x
x=1
y=1
那么执行完成后,r1和r2的值就都是0;
f)交错执行6
r2=x
r1=y
x=1
y=1
那么执行完成后,r1和r2的值也是0。
然而,上述e和f两种情况下,因为CPU对指令进行了重排,导致运行结果很怪异的现象,出现在进行CPU优化前不可能出现的结果,而该结果异常的现象为编程的一大缺陷。
因此,在本发明实施例中,提出了一种解决CPU优化引发的多线程问题的方法,预先设置内存栅障,该内存栅障表明ThreadFunc1与ThreadFunc2指令不允许被重排,当CPU对该段程序代码进行优化时,会发现该程序代码中设置有内存栅障,CPU就不会对ThreadFunc1与ThreadFunc2指令进行重排,就不会出现上述e和f的情况。
当在Windows操作系统中运行时,直接调用Windows操作系统中的MemoryBarrier函数。MemoryBarrier函数为Windows操作系统中的一个内联函数,将该MemoryBarrier函数作为内存栅障后,编译器发现这个内联函数后,在CPU优化时就不会对ThreadFunc1与ThreadFunc2指令进行重排。
上述ThreadFunc1与ThreadFunc2功能函数设置内存栅障后的代码示例如下:
上述两个ThreadFunc1与ThreadFunc2功能函数的线程中均加入了MemoryBarrier()内存栅障,则ThreadFunc1在运行时,必须先执行完X=1,才能执行r1=Y;同理,TheadFunc2运行时,必须先执行完Y=1,才能执行r2=X;这样,执行结果可能出现非交错执行中的两种情况,以及交错执行中的a~d四种情况,但不可能出现e和f两种情况,即不可能出现r1和r2同时为0的情况。
可见,在设置内存栅障后,可以避免ThreadFunc1与ThreadFunc2指令重排,使得不可能出现r1和r2同时为0的情况,从而可有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠。
当不是在Windows操作系统中运行时,则先定义当前操作系统下的MemoryBarrier函数,再调用该操作系统下的MemoryBarrier函数。以Linux或MacOS操作系统为例,将该系统下的smp_mb()函数定义为MemoryBarrier函数。
通过上述实现方式,一方面,解决了在非Windows操作系统上,有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠;另一方面,使得该段程序代码通用性非常强,不管是在Windows操作系统或其他操作系统中,均可使用相同的一段程序代码,只需在非Windows操作系统中对_MemoryBarrier函数进行预定义即可,从而保证了程序代码的跨平台移植性;再者,由于此段代码的通用性很强,可大大节省了程序开发时间,提高编程效率。
本发明实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述解决CPU优化引发的多线程问题的方法的步骤。
参见图2所示,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述解决CPU优化引发的多线程问题的方法的步骤。
本发明实施例还提供了一种解决CPU优化引发的多线程问题的系统,所述系统包括设置模块和优化模块;
所述设置模块用于预先在程序代码中设置内存栅障,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排;
所述优化模块用于在程序代码设置内存栅障后对程序代码进行CPU优化。
进一步地,所述内存栅障为MemoryBarrier函数。该函数为内存栅障中常用的函数,应用较为广泛,使用起来更加方便。
进一步地,所述系统还包括判断模块和第一处理模块;
所述判断模块用于判断当前操作系统是否为Windows操作系统;
所述第一处理模块用于当所述判断模块判断当前操作系统是Windows操作系统时直接调用Windows操作系统中的MemoryBarrier函数。
更进一步地,所述系统还包括第二处理模块,所述第二处理模块用于当所述判断模块判断当前操作系统不是Windows操作系统时,则先定义当前操作系统下的MemoryBarrier函数,再调用该操作系统下的MemoryBarrier函数。
上述解决CPU优化引发的多线程问题的系统,一方面,解决了在非Windows操作系统上,有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠;另一方面,使得该段程序代码通用性非常强,不管是在Windows操作系统或其他操作系统中,均可使用相同的一段程序代码,只需在非Windows操作系统中对_MemoryBarrier函数进行预定义即可,从而保证了程序代码的跨平台移植性;再者,由于此段代码的通用性很强,可大大节省了程序开发时间,提高编程效率。
本发明实施例中,解决CPU优化引发的多线程问题的系统通过设置内存栅障,避免指令重排,从而可有效解决CPU优化导致的多线程引起结果异常的问题,更加安全可靠。
需要说明的是:上述实施例提供的系统在解决CPU优化引发的多线程问题操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种解决CPU优化引发的多线程问题的方法,其特征在于,包括步骤:在程序代码中设置内存栅障后进行CPU优化,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排。
2.如权利要求1所述的解决CPU优化引发的多线程问题的方法,其特征在于:所述内存栅障为MemoryBarrier函数。
3.如权利要求2所述的解决CPU优化引发的多线程问题的方法,其特征在于:当在Windows操作系统中运行时,直接调用Windows操作系统中的MemoryBarrier函数。
4.如权利要求2所述的解决CPU优化引发的多线程问题的方法,其特征在于:当不是在Windows操作系统中运行时,则先定义当前操作系统下的MemoryBarrier函数,再调用该操作系统下的MemoryBarrier函数。
5.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至4中任一项所述方法的步骤。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至4中任一项所述方法的步骤。
7.一种解决CPU优化引发的多线程问题的系统,其特征在于,所述系统包括设置模块和优化模块;
所述设置模块用于预先在程序代码中设置内存栅障,所述内存栅障用于使CPU优化时顺序执行所述内存栅障之前的所有程序代码防止代码重排;
所述优化模块用于在程序代码设置内存栅障后对程序代码进行CPU优化。
8.如权利要求7所述的解决CPU优化引发的多线程问题的系统,其特征在于:所述内存栅障为MemoryBarrier函数。
9.如权利要求8所述的解决CPU优化引发的多线程问题的系统,其特征在于:所述系统还包括判断模块和第一处理模块;
所述判断模块用于判断当前操作系统是否为Windows操作系统;
所述第一处理模块用于当所述判断模块判断当前操作系统是Windows操作系统时直接调用Windows操作系统中的MemoryBarrier函数。
10.如权利要求9所述的解决CPU优化引发的多线程问题的系统,其特征在于:所述系统还包括第二处理模块,所述第二处理模块用于当所述判断模块判断当前操作系统不是Windows操作系统时,则先定义当前操作系统下的MemoryBarrier函数,再调用该操作系统下的MemoryBarrier函数。
CN201810331891.7A 2018-04-13 2018-04-13 一种解决cpu优化引发的多线程问题的方法及系统 Pending CN110377494A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810331891.7A CN110377494A (zh) 2018-04-13 2018-04-13 一种解决cpu优化引发的多线程问题的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810331891.7A CN110377494A (zh) 2018-04-13 2018-04-13 一种解决cpu优化引发的多线程问题的方法及系统

Publications (1)

Publication Number Publication Date
CN110377494A true CN110377494A (zh) 2019-10-25

Family

ID=68242932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810331891.7A Pending CN110377494A (zh) 2018-04-13 2018-04-13 一种解决cpu优化引发的多线程问题的方法及系统

Country Status (1)

Country Link
CN (1) CN110377494A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407324A (zh) * 2021-06-28 2021-09-17 浙江太美医疗科技股份有限公司 一种数据库运行数据的处理方法和装置
CN116069396A (zh) * 2023-03-01 2023-05-05 浪潮电子信息产业股份有限公司 一种多核cpu乱序执行的检测方法、装置、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120204062A1 (en) * 2011-02-09 2012-08-09 Microsoft Corporation Data race detection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120204062A1 (en) * 2011-02-09 2012-08-09 Microsoft Corporation Data race detection

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王昕等: "浅谈"如何不用锁机制实现并发"", 《程序员》 *
草上爬: "LevelDB源码分析之四:AtomicPointer", 《HTTPS://BLOG.CSDN.NET/CAOSHANGPA/ARTICLE/DETAILS/78852255》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407324A (zh) * 2021-06-28 2021-09-17 浙江太美医疗科技股份有限公司 一种数据库运行数据的处理方法和装置
CN113407324B (zh) * 2021-06-28 2024-03-29 浙江太美医疗科技股份有限公司 一种数据库运行数据的处理方法和装置
CN116069396A (zh) * 2023-03-01 2023-05-05 浪潮电子信息产业股份有限公司 一种多核cpu乱序执行的检测方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN102063286B (zh) 程序流控制
US7950001B2 (en) Method and apparatus for instrumentation in a multiprocessing environment
CN101446918B (zh) 一种实现用户态调试器调试单个函数的方法及系统
CN104461876B (zh) 一种基于运行快照序列的并行程序重现调试方法
CN103577308B (zh) 移动设备的日志文件的获取方法
CN110851246A (zh) 一种批量任务处理方法、装置、系统及存储介质
RU2008138698A (ru) Модель абстрактного исполнения для мета-рабочего цикла, основанного на продолжении
CN106528065B (zh) 一种线程获取方法及设备
EP3125108A1 (en) Vector processing using loops of dynamic vector length
CN110377494A (zh) 一种解决cpu优化引发的多线程问题的方法及系统
CN109656868B (zh) 一种cpu与gpu之间的内存数据转移方法
CN110187884B (zh) 一种多线程应用场景下的访存指令插桩优化方法
CN107526622A (zh) Linux的快速异常处理方法及装置
CN112948136A (zh) 一种嵌入式操作系统异步日志记录的实现方法
CN110377286A (zh) 一种解决cpu优化引发的多线程问题的方法及系统
CN105700913A (zh) 一种轻量级裸片代码的创建及并行运行方法
CN101581961A (zh) 一种cpu和降低cpu功耗的方法
CN108196849A (zh) 一种低延迟指令调度器
CN105843735A (zh) 一种终端内存的消耗方法及装置
CN104572087A (zh) 一种业务逻辑实现的适配模式方法及系统
CN113961625B (zh) 一种异构大数据管理平台任务迁移方法
CN110377287A (zh) 一种编译器优化后发现程序异常的方法及系统
CN109408221B (zh) 一种同步多线程用例生成方法及系统
CN108834427A (zh) 处理向量指令
CN117493431A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191025