【发布时间】:2014-04-21 00:39:20
【问题描述】:
我正在开发一个多线程程序,但由于某种原因我无法创建我的线程。当我尝试调试时,它会在我的 pthread_join 语句处中断。
for (i = 0; i < numThreads; ++i)
{
pthread_create (&(tids[i]), &attr, runnerFunction, &sValue[i]);
}
而join语句就是
for (i = 0; i < numThreads; ++i)
{
pthread_join (tids[i], NULL);
}
有人有什么建议吗?
【问题讨论】:
-
检查
pthread函数的返回值怎么样? -
试试
pthread_create (&tids[i], NULL, runnerFunction, (void*) sValue[i]); -
@arunmoezhi 这就是修复它的原因。我可以问为什么这有效而 pthread_attr 没有?
-
如果在
create调用中使用attr,在join调用中也应该使用