【问题标题】:Retrieve pthread_create's arg from outside the thread?从线程外部检索 pthread_create 的参数?
【发布时间】:2015-05-11 04:25:43
【问题描述】:

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

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

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

我们如何从线程外部检索传递给pthread_createarg?它甚至可以检索吗?

【问题讨论】:

    标签: multithreading pthreads


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢咖啡馆。有什么办法可以要求回arg吗?也就是说,给定一个可以重用的线程 id,我们如何让它告诉我们它的arg
    • 不,唯一的方法是将该关联存储在某个数据结构中。
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多