Window操作系统通过CreateThread系统调用创建线程的代码
时间: 2023-06-27 09:07:52 浏览: 58
下面是一个简单的例子:
```
#include <windows.h>
#include <stdio.h>
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
printf("Thread running...\n");
return 0;
}
int main()
{
HANDLE hThread;
DWORD dwThreadId;
hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, &dwThreadId);
if (hThread == NULL)
{
printf("Failed to create thread (%d)\n", GetLastError());
return 1;
}
printf("Thread created!\n");
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
return 0;
}
```
这个例子中,使用了CreateThread函数创建一个新的线程。CreateThread函数的第一个参数是一个指向SECURITY_ATTRIBUTES结构的指针,用于指定线程的安全属性,一般设置为NULL。第二个参数是线程堆栈的大小,0表示使用默认大小。第三个参数是指向线程函数的指针,这里指向了ThreadProc函数。第四个参数是传递给线程函数的参数,这里没有传递任何参数,所以为NULL。第五个参数是线程的创建标志,0表示线程立即开始执行。第六个参数是指向接收线程标识符的变量的指针。在本例中,使用了WaitForSingleObject函数等待线程完成,然后使用CloseHandle函数关闭线程句柄。