谁会用c++写个"运行线程"的个数统计

写简单一点的线程个数统计
2025-04-05 22:53:55
推荐回答(2个)
回答1:

当前进程和线程遍历统计,写好了。

#include
#include
#include
#include
#include
#include
BOOL GetProcess()
{
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //建立进程快照

if (INVALID_HANDLE_VALUE == hProcess)
{
printf("获取进程信息失败!!!\n");
return FALSE;
}

//成功获取进程信息
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
BOOL moreProc = Process32First(hProcess, &pe32);

while (moreProc) //枚举所有进程
{
_tprintf(_T("进程名称:%s 线程个数:%d\n"), pe32.szExeFile,pe32.cntThreads);

moreProc = Process32Next(hProcess, &pe32);
}

CloseHandle(hProcess); //释放进程快照

return TRUE;
}

int main(int argc, char* argv[])
{
setlocale(LC_ALL, "");
GetProcess();
//system("pause");
return 0;
}

回答2:

没啥特别神秘的。
定义一个公共整形变量,加上原子锁。
启动一个线程就加1;
结束一个线程就减1