在C++中,有以下幾種方式可以創建多線程:
#include <iostream>
#include <thread>
void foo() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(foo);
t.join(); // 等待線程結束
return 0;
}
#include <iostream>
#include <pthread.h>
void* foo(void*) {
std::cout << "Hello from thread!" << std::endl;
return nullptr;
}
int main() {
pthread_t thread;
pthread_create(&thread, nullptr, foo, nullptr);
pthread_join(thread, nullptr); // 等待線程結束
return 0;
}
#include <iostream>
#include <windows.h>
DWORD WINAPI foo(LPVOID) {
std::cout << "Hello from thread!" << std::endl;
return 0;
}
int main() {
HANDLE thread = CreateThread(nullptr, 0, foo, nullptr, 0, nullptr);
WaitForSingleObject(thread, INFINITE); // 等待線程結束
CloseHandle(thread);
return 0;
}
無論使用哪種方式創建線程,都需要注意線程的同步和互斥,以避免數據競爭和其他問題。