У меня есть следующий код Windows, который порождает две темы, а затем ждет, пока они не как завершены:Есть ли потоковой эквивалент WatiForMultipleObjects
hThreads[0] = _beginthread(&do_a, 0, p_args_a);
hThreads[1] = _beginthread(&do_b, 0, p_args_b);
WaitForMultipleObjects(2, hThreads, TRUE, INFINITE);
Я сейчас портирования тот же код, чтобы использовать Pthreads, но не уверен, как сделать эквивалент WaitForMultipleObjects
:
pthread_create(&hThreads[0], 0, &do_a, p_args_a);
pthread_create(&hThreads[1], 0, &do_b, p_args_b);
???
есть ли эквивалент способ, с помощью Pthreads, для достижения той же функциональности?
Мне нужно позвонить pthread_exit в do_a и do_b ли? –
Некоторое дополнительное чтение ... pthread_exit действительно требуется передать информацию обратно на вызов pthread_join, ожидающий выхода потока. –
Извините, я только что видел ваш комментарий. Нет, вам не нужно называть 'pthread_exit', если это не будет более удобным. Это аналогично вызову 'exit' из' main'. Вы можете сделать это, если хотите, но вы также можете просто вернуться нормально, и эффект будет таким, как если бы вы вызвали 'pthread_exit' с возвращаемым значением из функции потока. Я почти никогда не называю «pthread_exit». Я также почти никогда не использую возвращаемое значение (следовательно, почему я передаю NULL в качестве второго аргумента в 'pthread_join'). –