中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
中阳县| 乡宁县| 奇台县| 临西县| 饶河县| 巴青县| 桐柏县| 科技| 始兴县| 包头市| 武宁县| 朝阳县| 开封市| 九龙坡区| 元朗区| 信丰县| 扶沟县| 通许县| 金堂县| 毕节市| 麻江县| 聂拉木县| 白水县| 稻城县| 通江县| 醴陵市| 阜南县| 阿鲁科尔沁旗| 肇源县| 隆林| 汝城县| 凤城市| 永川市| 乌审旗| 定安县| 钟祥市| 新竹县| 休宁县| 赤水市| 门源| 康定县|