在C++中,std::thread
是用于創建和管理線程的標準庫類。可以使用std::thread
類來創建新線程并執行指定的函數或成員函數。以下是std::thread
的用法:
導入頭文件:#include <thread>
創建線程并執行函數:
void myFunction() {
// 線程執行的代碼
}
std::thread myThread(myFunction); // 創建線程并執行myFunction函數
創建線程并執行成員函數(需要使用成員函數指針和對象):
class MyClass {
public:
void myMethod() {
// 線程執行的代碼
}
};
MyClass myObject;
std::thread myThread(&MyClass::myMethod, &myObject); // 創建線程并執行myMethod函數
等待線程執行完成:
myThread.join(); // 等待線程執行完成
獲取線程ID:
std::thread::id threadID = myThread.get_id(); // 獲取線程ID
需要注意的是,線程創建后需要使用join()
來等待線程執行完成,否則程序可能會在主線程退出時終止。此外,還可以使用detach()
方法將線程與主線程分離,使其在后臺獨立運行,但要注意線程的生命周期和資源管理。