C++多線程beginthread()函數(shù)怎么使用

c++
小億
120
2024-01-19 01:53:15

_beginthread()函數(shù)是C語(yǔ)言中的多線程創(chuàng)建函數(shù),用于創(chuàng)建一個(gè)新的線程。以下是_beginthread()函數(shù)的使用方法:

#include <iostream>
#include <process.h> // 包含 _beginthread() 函數(shù)的頭文件

// 子線程函數(shù)
void ThreadFunc(void* arg) {
    std::cout << "This is a child thread." << std::endl;
}

int main() {
    // 創(chuàng)建一個(gè)新線程
    unsigned int threadId;
    intptr_t handle = _beginthread(ThreadFunc, 0, nullptr);
    if (handle == -1) {
        std::cerr << "Failed to create a new thread." << std::endl;
        return 1;
    }

    // 等待子線程結(jié)束
    _endthreadex(0);

    std::cout << "Main thread exits." << std::endl;
    return 0;
}

在上面的示例中,我們首先包含了<process.h>頭文件,然后定義了一個(gè)子線程函數(shù)ThreadFunc。在main()函數(shù)中,我們調(diào)用_beginthread()函數(shù)創(chuàng)建了一個(gè)新線程,并將子線程函數(shù)ThreadFunc作為參數(shù)傳遞給它。_beginthread()函數(shù)的第一個(gè)參數(shù)是要執(zhí)行的子線程函數(shù),第二個(gè)參數(shù)是堆棧大?。?表示使用默認(rèn)堆棧大?。谌齻€(gè)參數(shù)是傳遞給子線程函數(shù)的參數(shù)。_beginthread()函數(shù)返回一個(gè)句柄,可以用于后續(xù)操作。

在主線程中,我們使用_endthreadex()函數(shù)等待子線程結(jié)束。然后,主線程輸出一條消息并退出。

請(qǐng)注意,_beginthread()函數(shù)是C語(yǔ)言的函數(shù),因此在C++中使用時(shí)需要包含<process.h>頭文件,并使用std::coutstd::cerr輸出消息。另外,_beginthread()函數(shù)返回的句柄可以用于后續(xù)操作,例如等待線程結(jié)束或關(guān)閉線程句柄等。

0