windows 下获取当前进程的线程数量

#include <TlHelp32.h>

int get_thread_amount()
{
    int i = 0;
    char Buff[9];
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);

    int processid = GetCurrentProcessId();
    HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
    {
        printf("CreateToolhelp32Snapshot() failed. error code:%d.\n", GetLastError());
        return 0;
    }
    BOOL bMore = ::Process32First(hProcessSnap, &pe32);

    HANDLE hProcess;

    while (bMore)
    {
        if (pe32.th32ProcessID == processid)
        {
            return pe32.cntThreads;
        }

        bMore = Process32Next(hProcessSnap, &pe32);
        i++;
    }

    return 0;
}

windows 下获取当前进程的线程数量

时间: 2024-08-08 19:13:39

windows 下获取当前进程的线程数量的相关文章

获取其他进程中线程状态

进程是由线程组成,启动是的第一个线程为主线程. 对于Windows来说,不存在暂停或恢复进程的概念,因为进程从来不会被安排获得cpu时间. 但是我们可以创建一个函数,用来挂起或者恢复进程中的全部线程,这样就能挂起或者恢复一个进程了. 在进程外获取该进程的线程. 方法: 一.获取目标窗口句柄和进程PID HWND hCalc = ::FindWindow(NULL, "第几课作业 Hardware断点"); GetWindowThreadProcessId(hCalc, &th3

Windows下获取高精度时间注意事项

Windows下获取高精度时间注意事项 [转贴 AdamWu] 花了很长时间才得到的经验,与大家分享. 1. RDTSC - 粒度: 纳秒级 不推荐优势: 几乎是能够获得最细粒度的计数器抛弃理由: A) 定义模糊 - 曾经据说是处理器的cycle counter,但是后来似乎又不是了.有的机器上每秒的TSC增长值等于CPU频率,有的却是一个不对应任何配置的数.到底是什么,Intel也没解释清楚. B) 不准确 - 这是最重大的缺陷.再细的粒度,不准的话也没用,至少不能当时间用.在有的CPU上,特

windows下批量杀死进程

有时候由于病毒或其他原因,启动了一系列的进程,并且有时杀了这个,又多了那个.使用命令taskkill可将这些进程一下子全部杀光: C:\Users\NR>taskkill /F /im frontpg.exe 成功: 已终止进程 "FRONTPG.EXE",其 PID 为 3732. 成功: 已终止进程 "FRONTPG.EXE",其 PID 为 24544. 成功: 已终止进程 "FRONTPG.EXE",其 PID 为 3612. 错误

c和c++在windows下获取时间和计算时间差的方法总结

c/c++在windows下获取时间和计算时间差的几种方法总结 一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t timer0 ). 精确到秒. 测试程序如下: 1 #include <time.h> 2 #include <stdio.h> 3 4 int main() 5 { 6 time_t start, end; 7 double c

Windows下查看8080进程及结束进程命令

Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       3500 可知,进程号为3500的进程占用了8080端口 可以使用命令 tasklist | findstr “3500”进一步查看3500进程的具体信息. > tasklist | findstr “3500” 结果

【转载】c/c++在windows下获取时间和计算时间差的几种方法总结

一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t timer0 ). 精确到秒. 测试程序如下: #include <time.h> #include <stdio.h> int main() { time_t start ,end ; double cost; time(&start); sleep(1); time(&en

Windows常见面试题——进程、线程

1.什么是进程,什么是线程,请谈谈你的理解 答:进程和线程是操作系统中一个很重要的概念.进程是指操作系统中运行的应用程序,而线程是指程序中独立完成某一任务.实现某一功能所需的单元.进程就像一个工厂,可以完成某种产品的生产,而线程就像是工厂不同的部门,可以互补干扰独立的完成某项工作.一个进程至少运行着一个线程. 2.如何在不同进程中访问同一个内核对象.请说出至少三种方法 答:要访问内核对象,那么就需要在进程的句柄表中都有一个句柄项是指向此内核对象的.a.由父进程继承给子进程,当父进程创建子进程时,

windows下获取硬盘信息的命令

2020-1-17windows下获取硬盘序列号===================================winkey run cmdMicrosoft Windows [版本 10.0.18363.592](c) 2019 Microsoft Corporation.保留所有权利.方法1:C:\Users\Administrator>wmic diskdrive get serialnumberSerialNumberW3PC29KQ 方法2:C:\Users\Administra

Windows下获取Dump文件以及进程下各线程调用栈的方法总结(转)

1. Dump文件的用途 Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态.  除了平时常见的attach到这个进程, 分析Dump文件就成了一个重要的手段了. 相信一些做软件维护和支持的工程师在这方面深有体会, 比如某天某时,客户说, 呀, 糟糕, 服务器进程挂掉了, 怎么回事? 然后,看看了日志文件,也没有什么可用的信息.  技术支持告诉他, 按某步骤生成一个dump文件来看看...... 2. 如何生成Dump文