Используйте pthread_join
в «основном» потоке (драйвере), чтобы дождаться завершения всех остальных.
Чтобы выяснить, что означает «поток завершается» выше, посмотритена странице управления pthread_exit
говорится:
Выполнение возврата из функции запуска любого потока, кроме основного, приводит к неявному вызову pthread_exit () с использованиемВозвращаемое значение функции в качестве состояния выхода потока.
Так что pthread_join
ожидает присоединенного потока, чтобы либо вернуть из него функцию запуска, либо вызвать pthread_exit
.
(Вам нужночтобы отслеживать все потоки, которые вы создали, чтобы использовать это. И ничего из этого не работает, если вы отсоединили потоки обработки - в любом случае, вам, вероятно, не следует делать это в этом случае.)