91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++創建多線程的方式有哪些

c++
小億
88
2023-11-16 10:32:13
欄目: 編程語言

在C++中,有以下幾種方式可以創建多線程:

  1. 使用 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;
}
  1. 使用 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;
}
  1. 使用 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;
}

無論使用哪種方式創建線程,都需要注意線程的同步和互斥,以避免數據競爭和其他問題。

0
苍梧县| 富源县| 左云县| 德格县| 东城区| 剑河县| 云龙县| 临朐县| 儋州市| 南汇区| 楚雄市| 武鸣县| 西乌| 南阳市| 鄂托克前旗| 平利县| 阳新县| 永济市| 乌拉特后旗| 彰化市| 南阳市| 盐山县| 虎林市| 溧阳市| 芜湖市| 宁波市| 莆田市| 富源县| 宁陕县| 桐梓县| 巴东县| 宁都县| 辛集市| 青铜峡市| 沁阳市| 潮安县| 衡阳市| 泰兴市| 财经| 利津县| 弥渡县|