Темы не имеют "уровней" или родительских / дочерних отношений. Все потоки, включая начальные основные потоки, являются равноправными. Любой поток может вызвать pthread_join
в любом другом потоке, если дескриптор потока является действительным и поток не отсоединен.
Если вам действительно нужно навести порядок, самый простой инструмент для этого - барьеры (pthread_barrier_wait
). С другой стороны, условные переменные более эффективны, но сложнее в использовании и, вероятно, не нужны в этой ситуации.