C++(22)-多线程-windows(1)

//1.创建线程的函数
//2.传递参数:主线程->子线程: 参数生命周期 

#include <stdio.h>
#include <windows.h>

//传了一个n进来 是否已经销毁了
DWORD WINAPI work2(LPVOID lpParam)
{
    int n=*((int*)lpParam);
    printf("work2 n=%d\n",n);
    return 0;
}
//参数:指针4字节
DWORD WINAPI work(LPVOID lParam)
{
    int n=10;//传递给work2的参数
    HANDLE hTread=CreateThread(NULL,0,work2,&n,0,NULL);
    Sleep(1000);//1S 
    return 0;
}

//主线程
int main()
{
    int n=10;//main函数执行完,n将销毁 如果其他线程仍然在用,会出错的。
    DWORD dwTreadId;
    /*默认安全属性,堆栈大小,函数名,,创建后挂起或者,线程ID
    返回的是新的线程句柄
    HANDLE hTread=CreateThread(NULL,0,work,&n,0,&dwTreadId);
    if(hTread==NULL)
    {
        printf("创建线程失败");
     }*/
    for(int i=0;i<3;i++)
    {
        HANDLE hTread=CreateThread(NULL,0,work,&n,0,NULL);
    }
     return 0;
}

 

posted @ 2020-11-26 16:41  jasmineTang  阅读(131)  评论(0)    收藏  举报