是否可以确定我声明的pthread_t结构是否未使用?我有一个pthread_t结构数组,在我的程序结束时我在每个上调用pthread_join(),但如果其中一些从未使用过,我不想在它们上调用pthread_join()。判断pthread_t结构是否未使用的最佳方法是什么?
答案 0 :(得分:3)
传递给pthread_t
的{{1}}对象必须引用可连接的线程。因此,您需要自己跟踪 - 在pthread_t对象旁边保留一个标志以跟踪它是否被使用(可能使用pthread_t将结构中的标志打包)。
请记住,除了尚未使用pthread_join()
对象之外,如果您从线程中分离或加入,您还需要清除该标志(我不确定这是否是pthread_t
对象变为'不可加入'时的详尽列表......)。