pthread_join пропустив первую тему - PullRequest
2 голосов
/ 17 февраля 2011

Итак, у меня есть следующий код, часть его опущена, чтобы его было легче понять.

for (unsigned int t = 0; t < NUM_THREADS; t++)
    {

        if (pthread_create(&threads[t], NULL, thread_run, (void*) &threadData) != 0)
        {
            perror("pthread_create");
        }//end if
    }

    for (unsigned int z = 0; z < NUM_THREADS; z++)
    {
        if (pthread_join(threads[z], NULL) != 0)
        {
            perror("pthread_join");
        }
    }

Моя проблема - это функция соединения, она пропускает первый созданный мной поток и продолжает работу.Текущее решение, которое у меня есть, это добавление дополнительной нити и не заставлять первую делать какую-либо работу.

Есть идеи, почему это может происходить?

1 Ответ

1 голос
/ 17 февраля 2011

ИМО там не проблема с нитями; вы просто создаете NUM_THREADS + 1 темы и присоединяетесь только к первым NUM_THREADS из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...