C++中的線程庫提供了多種方式來創(chuàng)建和管理線程。以下是一些常見的C++線程用法:
#include <iostream>
#include <thread>
void foo() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(foo); // 創(chuàng)建一個(gè)新線程,并執(zhí)行foo()函數(shù)
t.join(); // 等待線程t執(zhí)行完畢
return 0;
}
#include <iostream>
#include <thread>
int main() {
std::thread t([]() {
std::cout << "Hello from thread!" << std::endl;
});
t.join();
return 0;
}
#include <iostream>
#include <future>
int foo() {
return 42;
}
int main() {
std::future<int> result = std::async(foo); // 創(chuàng)建一個(gè)異步任務(wù),并返回一個(gè)std::future對(duì)象
std::cout << "Result: " << result.get() << std::endl; // 獲取異步任務(wù)的結(jié)果
return 0;
}
#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++線程的一些常見用法,還有其他更高級(jí)的用法,如線程間的通信、線程池等。