C++ 標準函式庫中實作多執行緒的方法:包含頭檔:#include <thread>建立執行緒物件:std::thread t(function_or_lambda)啟動執行緒:t.start()等待執行緒完成:t.join ()
#多執行緒是指在一個程式中同時執行多個不同的任務,這是對於提高程序並發性和反應速度非常重要的概念。 C++ 標準函式庫提供了幾個類別和函數,可以輕鬆實作多執行緒。
以下是如何使用C++ 標準函式庫實作多執行緒:
#包含頭檔:
#include <thread>
建立線程對象:
使用std::thread
類別來建立線程對象,並指定要執行的函數或可呼叫對象。
std::thread t(function_or_lambda);
啟動執行緒:
使用 std::thread::start()
方法來啟動執行緒。此方法將開始一個新的線程,並執行指定的函數或可呼叫物件。
t.start();
等待執行緒完成:
使用 std::thread::join()
方法來等待執行緒完成其任務。
t.join();
計算多個數的總和:
使用多執行緒來計算一組數的總和。將陣列分成多個子數組,然後建立多個執行緒來同時計算每個子數組的總和。最後將各個執行緒計算出的子數組總和相加即可得到總和。
#include <thread> #includeusing namespace std; vector numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int num_threads = 4; int sum(const vector & arr, int start, int end) { int sum = 0; for (int i = start; i < end; i++) { sum += arr[i]; } return sum; } int main() { // 创建线程数组 vector threads(num_threads); // 计算每个线程负责的范围 int chunk_size = numbers.size() / num_threads; vector partial_sums(num_threads); for (int i = 0; i < num_threads; i++) { int start = i * chunk_size; int end = min((i + 1) * chunk_size, numbers.size()); // 创建线程并计算部分和 threads[i] = thread(sum, ref(numbers), start, end); } // 等待所有线程完成 for (int i = 0; i < num_threads; i++) { threads[i].join(); } // 计算总体和 int total_sum = 0; for (int partial_sum : partial_sums) { total_sum += partial_sum; } cout << "Total sum: " << total_sum << endl; return 0; }
以上是如何使用C++的標準函式庫實作多執行緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!