是否可以确定pthread_t结构是否未使用?

时间:2012-04-22 18:56:16

标签: c struct pthreads

是否可以确定我声明的pthread_t结构是否未使用?我有一个pthread_t结构数组,在我的程序结束时我在每个上调用pthread_join(),但如果其中一些从未使用过,我不想在它们上调用pthread_join()。判断pthread_t结构是否未使用的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

传递给pthread_t的{​​{1}}对象必须引用可连接的线程。因此,您需要自己跟踪 - 在pthread_t对象旁边保留一个标志以跟踪它是否被使用(可能使用pthread_t将结构中的标志打包)。

请记住,除了尚未使用pthread_join()对象之外,如果您从线程中分离或加入,您还需要清除该标志(我不确定这是否是pthread_t对象变为'不可加入'时的详尽列表......)。