CreateThread

Posted butchert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CreateThread相关的知识,希望对你有一定的参考价值。

// 2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
#include "stdlib.h"
DWORD WINAPI thr1(LPVOID lp)//参数可以给线程传递一些数据,作为内部使用,很重要
{
    while(true)
    {
        cout<<"Hello,thread!____1___"<<endl;
        Sleep(1000);
    }
    return 0;
}

DWORD WINAPI thr2(LPVOID lp)
{
    while(true)
    {
        cout<<"Hello,thread!____2___"<<endl;
        Sleep(1000);
    }
    return 0;
}

VOID threa()
{
    DWORD nid1=0,nid2=0;
    HANDLE hd1=CreateThread(NULL,0,thr1,NULL,0,&nid1);
    WaitForSingleObject(hd1,2000);
    HANDLE hd2=CreateThread(NULL,0,thr2,NULL,0,&nid2);
    CloseHandle(hd1);//关闭句柄,释放资源,并不是结束线程
    CloseHandle(hd2);
}

int main(int argc, char* argv[])
{
    threa();
    getchar();
    return 0;
}





******************************************************************

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

DWORD WINAPI pro(LPVOID lp)
{
    cout<<"Hello,thread!"<<endl;
    return 0;
}
int main(int argc, char* argv[])
{
    DWORD nid=0;
    HANDLE hd;
    hd=CreateThread(NULL,0,pro,NULL,0,&nid);
    WaitForSingleObject(hd,INFINITE);//如果没有这个函数的话,会出现的情况就是自己创建的线程无法执行
    CloseHandle(hd);
    return 0;
}







//每个进程中都有一个看不见的主线程,在考虑的时候不能遗漏,否则会出现线程调度的问题

 

以上是关于CreateThread的主要内容,如果未能解决你的问题,请参考以下文章

CreateThread() 太慢?

_beginthreadex和Createthread的区别

使用 std::thread 或 CreateThread()? [复制]

CreateThread传递多个参数的方法(利用结构体的参数指针)

_beginthread 和 CreateThread 区别

CreateThread 的 threadProc 竞争条件