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() 函数等待线程结束,并释放相关资源。

posted @ 2023-05-06 15:33  萧海~  阅读(199)  评论(0编辑  收藏  举报