//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;
}