所以我有以下代码,其中一些代码被忽略了,所以它更容易理解。
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");
}
}
我的问题是连接函数,它正在跳过我创建的第一个线程,并继续。我目前的解决方案是添加一个额外的线程,而不是让第一个线程做任何工作。
为什么会发生这种情况的任何想法?
答案 0 :(得分:1)
IMO没有pthreads问题;您只是创建NUM_THREADS + 1
个帖子并且只加入其中的NUM_THREADS
个帖子。