c++创建多线程的方式有哪些

   2025-02-15 4790
核心提示:在C++中,有以下几种方式可以创建多线程:使用 std::thread 类:std::thread 是 C++11 中添加的标准库类,可以创建一个新的线程

在C++中,有以下几种方式可以创建多线程:

使用 std::thread 类:std::thread 是 C++11 中添加的标准库类,可以创建一个新的线程。你可以使用它的构造函数来传递一个可调用的对象(函数、函数指针或者 lambda 表达式)作为线程的入口点。
#include <iostream>#include <thread>void foo() {    std::cout << "Hello from thread!" << std::endl;}int main() {    std::thread t(foo);    t.join(); // 等待线程结束    return 0;}
使用 POSIX 线程库:POSIX 线程库是一套用于创建和管理线程的标准接口。在 C++ 中,你可以使用 pthread_create 函数来创建一个新的线程。
#include <iostream>#include <pthread.h>void* foo(void*) {    std::cout << "Hello from thread!" << std::endl;    return nullptr;}int main() {    pthread_t thread;    pthread_create(&thread, nullptr, foo, nullptr);    pthread_join(thread, nullptr); // 等待线程结束    return 0;}
使用 Windows 线程:在 Windows 系统上,你可以使用 CreateThread 函数来创建一个新的线程。
#include <iostream>#include <windows.h>DWORD WINAPI foo(LPVOID) {    std::cout << "Hello from thread!" << std::endl;    return 0;}int main() {    HANDLE thread = CreateThread(nullptr, 0, foo, nullptr, 0, nullptr);    WaitForSingleObject(thread, INFINITE); // 等待线程结束    CloseHandle(thread);    return 0;}

无论使用哪种方式创建线程,都需要注意线程的同步和互斥,以避免数据竞争和其他问题。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言