【C++ windows多线程使CPU 100%】

[友情提醒]:环境测试用,切勿用于生产
用于windows 平台的CPU 100% 预警测试程序,c++实现
cpp程序文件名:win32HighCpuTest.cpp

#include <Windows.h>
#include <iostream>

using namespace std;

//定义线程工作函数
DWORD CALLBACK TestFunc1(LPVOID lpParam) {
    while (1)  //死循环使CPU空转
        ;
}

int main() {
    SYSTEM_INFO sysinfo;  // SYSTEM_INFO 结构体用于存放收集的系统配置信息
    GetSystemInfo(&sysinfo);  //获取window配置信息
    DWORD CPUCores = sysinfo.dwNumberOfProcessors; // 从sysinfo中拿到CPU和核心数量,这里获取的核心数不是物理核心数,而是CPU制程的线程数, 比如4核CPU,每单核CPU可并行两线程,那么就是4核8线程,得到的CPUCores数量就是8
	cout << "CPU cores:" << CPUCores << endl;  //打印CPUCores
	
    DWORD nID = 0;  //临时变量用于存放创建的线程ID
    HANDLE *hThreads = new HANDLE[CPUCores]; // new 线程句柄的数组
    
    for (DWORD i = 0; i < CPUCores; i++) {
    	//CreateThread 循环创建线程,句柄存放在hThreads 数组中
        hThreads[i] = CreateThread(NULL, 0, TestFunc1, NULL, 0, &nID);
    }
    WaitForMultipleObjects(2, hThreads, true, INFINITE); //主线程阻塞等待所有线程结束
    cout << "wait over" << endl;  //所有线程结束后才会打印这句(实际运行不会出现这句打印,因为线程工作函数TestFunc1是死循环的永远不会结束哈哈~~~)
    return 0;
}

编译

g++ .\win32HighCpuTest.cpp -W -std=c++11 -o .\win32HighCpuTest.exe
运行:
.\win32HighCpuTest.exe

检查运行效果:

在这里插入图片描述
CPU0~CPU7 全部100%
在这里插入图片描述

CPU 瞬间就拉满了~

结束

Ctrl + C 结束程序,后CPU又降下来了
在这里插入图片描述
在这里插入图片描述
程序我放在了这里:win32HighCpuTest.exe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值