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

溫馨提示×

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
古浪县| 开江县| 澳门| 宝清县| 甘肃省| 惠州市| 崇阳县| 澄城县| 宜君县| 辉县市| 乾安县| 雷波县| 静海县| 会昌县| 讷河市| 岑巩县| 连南| 长兴县| 梧州市| 南阳市| 汉阴县| 山东| 尤溪县| 岳西县| 鹤岗市| 密云县| 盘锦市| 成安县| 扎兰屯市| 抚远县| 广德县| 穆棱市| 镇原县| 洪雅县| 衡阳县| 牙克石市| 吴旗县| 远安县| 克拉玛依市| 广汉市| 治县。|