【发布时间】:2009-06-27 09:24:16
【问题描述】:
我假设 pthread_t 在它的整个生命周期内都保持不变 - 对于给定的线程 - 但我的实验似乎证明了这个假设是错误的。如果给定线程的 id 在其生命周期中不保持不变,我如何存储 pthread_t 以便另一个线程可以使用 pthread_join 阻塞直到线程完成?
由于其他原因,知道如何获取线程的唯一标识符,我可以将它来回转换为pthread_t,这对我很有用。有没有办法做到这一点?
那里有很多很棒的信息,但我很难为这些问题找到有用的答案。 如果能得到任何帮助/建议,我将不胜感激!
编辑:另外,我不知道为什么,但是在每个新线程的前面(在线程的函数内)添加 sleep(1) 和休眠 1 秒时,一切似乎都按预期工作。这可能是一根稻草,但pthread_t 的值是否会在新线程开始时瞬间改变??
【问题讨论】:
-
你能发布你的“实验”来证明这个假设是错误的吗?我敢打赌,问题出在实验中。您的编辑说添加“睡眠()”会改变结果似乎指向那个方向。
标签: c++ multithreading pthreads