从线程外部检索pthread_create&#s; arg?

时间:2015-05-11 04:25:43

标签: multithreading pthreads

这与How to assign unique ids to threads in a pthread wrapper?The need for id_callback when in a multithread environment?相关。

当我们需要区分唯一线程时,我们不能使用像pthread_self这样的函数,因为线程ID会被重用。在这些问题中,建议使用单调递增的计数器来提供唯一的ID,因为反潜的线程id重用。然后,计数器通过arg中的pthread_create传递给线程。

由于重用问题,我认为我们无法维护外部线程ID到唯一ID的映射。相同的线程ID可以具有多个唯一ID。

我们如何从 线程中检索传递给arg的{​​{1}}?它甚至可以检索吗?

1 个答案:

答案 0 :(得分:1)

  

我不认为我们可以将外部线程ID的映射保持为唯一   id因为重用问题。相同的线程ID可能有   多个独特的ID。

您可以,只要在此映射中,您只保留与当前正在运行的线程对应的外部线程ID。线程退出时,将其从地图中删除。

地图的用户显然只关心当前正在运行的线程,因为显然它必须识别它想要的线程的唯一方法是外部线程ID。