windows c++多线程
时间: 2023-07-25 14:38:59 浏览: 67
在Windows平台上使用C++实现多线程有多种方式,其中最常见的方式是使用Windows API提供的线程相关函数。以下是一个简单的示例代码:
```c++
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI myThread(LPVOID lpParameter)
{
int* p = (int*)lpParameter;
cout << "Thread ID: " << GetCurrentThreadId() << endl;
cout << "Parameter: " << *p << endl;
return 0;
}
int main()
{
HANDLE hThread;
DWORD threadID;
int parameter = 123;
hThread = CreateThread(NULL, 0, myThread, ¶meter, 0, &threadID);
if (hThread == NULL)
{
cout << "Failed to create thread!" << endl;
return 1;
}
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
return 0;
}
```
在这个示例中,我们使用了`CreateThread`函数创建了一个新的线程,并指定了线程函数`myThread`和参数`parameter`。线程函数中,我们可以使用`GetCurrentThreadId`函数获取当前线程的ID,并输出到控制台上。主线程使用了`WaitForSingleObject`函数等待新线程执行完毕。最后使用`CloseHandle`函数关闭线程句柄。
当然,在实际应用中,我们可能需要更加复杂的线程同步和通信机制,例如使用互斥量或信号量来控制多线程访问共享资源的顺序和安全性。