[英]Creating array of threads on Windows
我正在尝试创建一个线程数组。 在Linux中,我这样做:
pthread_t thr[MAXCONNECTIONS];
在Windows上,我找不到任何替代品。 反正有没有创建一个替换它的数组?
HANDLE threads[ThreadCount];
for (int i=0; i < ThreadCount; ++i)
{
threads[i] = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, NULL, 0, &threadID );
}
我遗漏了一些东西,但你得到了这个问题。 你有一个HANDLE的数组而不是物理线程。 然后,您可以将HANDLE传递给各种函数以在线程上执行操作。
WaitForSingleObject(threads[2], INFINITE );
假设您要创建10个线程
包括这个:
#include <Windows.h>
#include <process.h>
线程函数看起来像这样:
DWORD WINAPI thread_1(LPVOID lpParam){ /* do something */; return 0; }
数组和线程创建:
HANDLE thr[10];
thr[0] = CreateThread(NULL, 0, thread_1, NULL, NULL, NULL);
... etc for 1..9
WaitForMultipleObjects(10, thr, TRUE, INFINITE);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.