在 Linux 下使用 C++ 進行多線程編程,你可以使用 C++11 標準庫中的 <thread>
頭文件
在你的 C++ 源代碼文件中,首先需要包含 <thread>
頭文件。
#include <iostream>
#include <thread>
創建一個你希望在線程中執行的函數。這個函數接收一些參數(如果有的話),并在線程中執行任務。
void print_hello(int n) {
for (int i = 0; i < n; ++i) {
std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl;
}
}
使用 std::thread
類創建一個線程對象,并將要在線程中執行的函數作為構造函數的參數傳遞。你還可以將參數傳遞給線程函數。
int main() {
// 創建一個線程對象,執行 print_hello 函數
std::thread t1(print_hello, 5);
// 等待線程完成
t1.join();
return 0;
}
調用線程對象的 join()
方法來啟動線程。注意,join()
方法會阻塞主線程,直到被調用的線程完成執行。如果你希望主線程立即繼續執行,可以使用 detach()
方法。但是,使用 detach()
后,你將無法再控制或獲取已分離線程的狀態。
int main() {
// 創建一個線程對象,執行 print_hello 函數
std::thread t1(print_hello, 5);
// 等待線程完成
t1.join();
return 0;
}
這就是在 Linux 下使用 C++ 進行多線程編程的基本方法。你可以根據需要創建更多的線程,并在它們之間共享數據或使用同步機制(如互斥鎖、條件變量等)來協調它們的執行。