C++ createthread简单使用
在 C++ 中使用 CreateThread() 函数可以创建一个新线程。以下是使用 CreateThread() 函数的基本示例:
#include <Windows.h>
#include <iostream>
using namespace std;
// 线程入口函数
DWORD WINAPI MyThread(LPVOID lpParam)
{
for (int i = 0; i < 10; i++)
{
cout << "Child thread: " << i << endl;
Sleep(1000);
}
return 0;
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, MyThread, NULL, 0, NULL);
if (hThread == NULL)
{
cout << "Failed to create thread" << endl;
return 1;
}
for (int i = 0; i < 10; i++)
{
cout << "Main thread: " << i << endl;
Sleep(1000);
}
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
return 0;
}
上述示例中,我们定义了一个线程入口函数 MyThread(),将其传递给 CreateThread() 函数以创建一个新线程。
CreateThread() 函数的第一个参数指定线程安全属性,可以设置为 NULL 或 SECURITY_ATTRIBUTES 的指针。
第二个参数指定堆栈空间大小,可以设置为 0 默认使用父线程的堆栈空间大小。
第三个参数是线程入口函数指针。
第四个参数是传递给线程入口函数的参数,通常是结构体类型的指针。
第五个参数是线程创建后执行的初始状态,可以设置为 0 默认立即执行。
第六个参数是线程 ID,通常设置为 NULL。
需要注意的是,在使用 CreateThread() 函数创建线程时,线程很快地结束可能会导致内存泄露或其他问题。因此,我们需要使用 WaitForSingleObject() 函数等待线程结束,并释放相关资源。