Я не могу представить, почему вы сделали бы это в реальном приложении (кто-то, пожалуйста, прокомментируйте пример, если вы можете придумать один), но я не верю, что это даже возможно.Во всех поисках pthread, на которые я смотрел, соединение всегда вызывается из основного потока, а не из вторичного потока.
Для объединения также требуется, чтобы поток, к которому вы пытаетесь присоединиться, был создан с помощью PTHREAD_CREATE_JOINABLEфлаг.У меня не было возможности найти какую-либо документацию, подтверждающую, создан ли основной поток как таковой.
У Codeguru есть похожий вопрос здесь , который может помочь, а может и не помочь прояснить его..
Если вы хотите, чтобы дочерний поток продолжал работу после выхода из основного потока, вы должны создать дочерний поток отдельно или использовать вместо него fork
/ vfork
, в зависимости от того, на какой платформе вы работаете.включен.