Windows中C++如何创建线程
时间: 2024-04-08 18:29:46 浏览: 14
在Windows中,可以使用C++标准库和Windows API来创建线程。下面是两种常用的创建线程的方法:
1. 使用C++标准库(<thread>头文件):
```cpp
#include <iostream>
#include <thread>
// 线程函数
void threadFunction() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
// 创建线程
std::thread myThread(threadFunction);
// 等待线程结束
myThread.join();
return 0;
}
```
2. 使用Windows API(<Windows.h>头文件):
```cpp
#include <iostream>
#include <Windows.h>
// 线程函数
DWORD WINAPI threadFunction(LPVOID lpParam) {
std::cout << "Hello from thread!" << std::endl;
return 0;
}
int main() {
// 创建线程
HANDLE hThread = CreateThread(NULL, 0, threadFunction, NULL, 0, NULL);
// 等待线程结束
WaitForSingleObject(hThread, INFINITE);
// 关闭线程句柄
CloseHandle(hThread);
return 0;
}
```
无论是使用C++标准库还是Windows API,都需要定义一个线程函数,并通过创建线程的方法来启动线程。在上述示例中,线程函数`threadFunction`被创建并执行,然后主线程使用`join`或`WaitForSingleObject`等待子线程执行完毕。最后,关闭线程句柄以释放资源。
请注意,在使用Windows API创建线程时,需要指定线程函数的返回类型为`DWORD WINAPI`,并使用`CreateThread`函数来创建线程。而在使用C++标准库创建线程时,线程函数的返回类型可以是`void`,并使用`std::thread`类来创建线程。