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

溫馨提示×

c++ thread怎么使用

c++
小億
96
2023-09-14 22:50:43
欄目: 編程語言

C++中的線程可以通過使用std::thread類來創建和管理。下面是一個簡單的示例代碼,展示了如何在C++中使用線程:

#include <iostream>
#include <thread>
// 線程函數
void threadFunction() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
// 創建線程對象并傳入線程函數
std::thread myThread(threadFunction);
// 主線程繼續執行
std::cout << "Hello from main thread!" << std::endl;
// 等待線程執行完畢
myThread.join();
return 0;
}

在上面的代碼中,我們創建了一個名為myThread的線程對象,并將threadFunction作為線程函數傳遞給它。然后,主線程繼續執行,在執行完std::cout語句后,通過調用myThread.join()等待線程執行完畢。

此外,還可以傳遞參數給線程函數:

#include <iostream>
#include <thread>
// 線程函數
void threadFunction(int n) {
std::cout << "Hello from thread! Number: " << n << std::endl;
}
int main() {
int numThreads = 5;
std::thread threads[numThreads];
// 創建多個線程對象,并傳入線程函數和參數
for (int i = 0; i < numThreads; i++) {
threads[i] = std::thread(threadFunction, i);
}
// 主線程繼續執行
std::cout << "Hello from main thread!" << std::endl;
// 等待所有線程執行完畢
for (int i = 0; i < numThreads; i++) {
threads[i].join();
}
return 0;
}

在這個示例中,我們創建了一個包含5個線程對象的數組,并通過循環在每個線程對象上調用std::thread構造函數來創建線程。每個線程對象都傳遞了不同的參數給線程函數threadFunction

需要注意的是,在使用線程時需要小心處理共享資源的訪問,以避免競態條件和數據競爭的問題。可以使用互斥量(std::mutex)來對共享資源進行同步訪問,或者使用其他線程安全的容器和工具。

0
宜川县| 蓝山县| 陆河县| 大庆市| 宜章县| 凤城市| 伊吾县| 澄迈县| 凤凰县| 台东县| 蓬安县| 时尚| 平阴县| 迁安市| 鹰潭市| 奇台县| 延吉市| 鹿邑县| 云林县| 宽城| 伽师县| 珲春市| 哈尔滨市| 乐至县| 仁怀市| 利川市| 绵竹市| 通城县| 苍南县| 宜兰市| 浦北县| 大同县| 年辖:市辖区| 株洲市| 汪清县| 荔波县| 辽源市| 香港| 同心县| 中牟县| 清镇市|