线程创建

1,线程是附属在进程上的执行实体,是代码的执行流程;
2,一个进程可以包含多个线程,但一个进程至少要包含一个线程(主线程)

#include <Windows.h>

DWORD WINAPI MyThread(LPVOID lpParameter)
{
    //ziji de code
}

int main()
{
    HANDLE hThread;
    hThread = CreateThread(NULL,0,MyThread,NULL,0,NULL);//如果不对线程操作,可以不拿句柄,传给线程的参数,要保证比线程存活时间更长
    Sleep(5000);//main线程歇5秒
    SuspendThread(hThread);//hThread线程挂起,不跑了先
    //SuspendThread(hThread);//可以多次挂起,前面挂起几次,后面要释放几次,不然不跑
    Sleep(5000);//main线程再歇5秒
    ResumeThread(hThread);//hThread重新跑起来
    CloseHandle(hThread);//线程只有在内核计数器为0&线程代码执行完以后,才会关闭,这里先把计数器复原
    return 0;
}

 3,多线程的创建

#include <Windows.h>

DWORD WINAPI MyThread(LPVOID lpParameter)
{
    //ziji de code
}

int main()
{
    HANDLE hThread1;
    HANDLE hThread2;
    //创建多个线程,可以使用同一份线程代码,创建的是不同的堆栈,下面都使用了MyThread线程函数的代码
    hThread1 = CreateThread(NULL,0,MyThread,NULL,0,NULL);
    hThread2 = CreateThread(NULL,0,MyThread,NULL,0,NULL);
    CloseHandle(hThread1);
    CloseHandle(hThread2);
    return 0;
}

 

posted @ 2020-02-23 11:40  AGB  阅读(131)  评论(0编辑  收藏  举报