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

溫馨提示×

c++ thread的用法有哪些

c++
小億
111
2023-10-09 04:29:37
欄目: 編程語言

C++中的線程庫提供了多種方式來創建和管理線程。以下是一些常見的C++線程用法:

  1. 使用std::thread類創建線程:
#include <iostream>
#include <thread>
void foo() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(foo);  // 創建一個新線程,并執行foo()函數
t.join();  // 等待線程t執行完畢
return 0;
}
  1. 使用lambda表達式創建線程:
#include <iostream>
#include <thread>
int main() {
std::thread t([]() {
std::cout << "Hello from thread!" << std::endl;
});
t.join();
return 0;
}
  1. 使用std::async函數創建異步任務:
#include <iostream>
#include <future>
int foo() {
return 42;
}
int main() {
std::future<int> result = std::async(foo);  // 創建一個異步任務,并返回一個std::future對象
std::cout << "Result: " << result.get() << std::endl;  // 獲取異步任務的結果
return 0;
}
  1. 使用std::mutex和std::lock_guard實現線程安全:
#include <iostream>
#include <thread>
#include <mutex>
std::mutex mtx;
void foo() {
std::lock_guard<std::mutex> lock(mtx);  // 獲取互斥鎖
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(foo);
t.join();
return 0;
}

這些只是C++線程的一些常見用法,還有其他更高級的用法,如線程間的通信、線程池等。

0
罗甸县| 裕民县| 堆龙德庆县| 太原市| 浙江省| 来安县| 镇宁| 定结县| 句容市| 图木舒克市| 望城县| 伊宁市| 民权县| 呼图壁县| 陇南市| 宝清县| 甘泉县| 秦皇岛市| 桃源县| 夏邑县| 安仁县| 金堂县| 井研县| 开平市| 江口县| 叙永县| 原阳县| 达拉特旗| 涟水县| 新巴尔虎右旗| 萨嘎县| 龙川县| 洛宁县| 大宁县| 元谋县| 长兴县| 乌恰县| 利津县| 聂拉木县| 全南县| 南涧|