亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
舒城县| 岱山县| 洪江市| 措美县| 赤城县| 台东县| 广南县| 社旗县| 历史| 江永县| 临漳县| 翁源县| 固阳县| 岳阳县| 定边县| 丹东市| 慈利县| 平舆县| 会泽县| 曲靖市| 华蓥市| 邛崃市| 洛扎县| 武冈市| 阿巴嘎旗| 桂平市| 乐清市| 新乡市| 高阳县| 玛曲县| 名山县| 横峰县| 武夷山市| 行唐县| 凤庆县| 漳浦县| 商南县| 通州市| 永顺县| 绥江县| 泸水县|