Преимущества использования условных переменных pthread вместо pthread_join для эмуляции Windows WaitForMultipleObjects

Каковы преимущества использования условных переменных pthread вместо pthread_join для эмуляции Windows WaitForMultipleObject?

Вот код C ++ для эмуляции Windows WaitForMultipleObject с использованием
pthread_join:

int i;
for(i=0;i<threads;i++)
pthread_join(threadids[i], NULL);

Вот код C ++ для эмуляции Windows WaitForMultipleObject с использованием
pthread_cond_wait:

mCritSect.Lock();
pthread_mutex_lock(&mMutex);
while (true) {
// check if ThreadPool array has unused element
for (unsigned ix(0); ix < NumberThreads; ix++) {
if (ThreadPool[ix] == 0) {

pthread_create(pThread,
(const pthread_attr_t*)0,
(void(*)(void*))ThreadFunction
ChildList);

pthread_mutex_unlock(&mMutex);
mCritSect.UnLock();
return ThreadPool[ix];
}
}
// wait on mConditionVariable for ThreadPool array element to become available
pthread_cond_wait(&mConditionVariable, &mMutex);
}

Любая помощь с благодарностью.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]