从C中的线程函数返回一个值

时间:2012-05-18 05:29:24

标签: c linux multithreading pthreads

我是pthread的新手,我已经完成了一些教程。教程说我只能将一个参数传递给线程中使用的函数。我通过使用一个结构将多个参数传递给线程解决了这个问题。但是现在进一步研究我得出结论,线程中的函数不能返回任何值,唯一的方法是使用全局变量。我真正需要的是,我需要在两个不同的线程中运行两个函数,一个函数的返回值需要另一个函数的输入,反之亦然。我该怎么做才能实现这个需求。提前致谢。是的,linux是平台。

2 个答案:

答案 0 :(得分:4)

检查pthread_join()。它会将值传递给pthread_exit()。您可以尝试将值传递给pthread_exit(),而不是从thread_function返回。

答案 1 :(得分:2)

线程的返回值是void *。这可以作为pthread_join()的第二个参数。另请参阅pthread_exit()