代码之家  ›  专栏  ›  技术社区  ›  jpo38

同一个线程ID是否可以在同一进程中重用?

  •  0
  • jpo38  · 技术社区  · 6 年前

    我在映射中存储每个线程的信息(映射的键是线程ID)。

    不过,我想知道这是否真的是个好主意。我看到每个线程都有一个不同的ID,但这真的意味着“每个线程”还是“每个活动线程”。我的意思是,在同一个进程中,一个新线程可以使用与结束的旧线程相同的ID吗?

    syscall(__NR_gettid) 不同的时候 boost::this_thread::get_id()

    2 回复  |  直到 6 年前
        1
  •  2
  •   Guillem Castro    6 年前

    pthread (两者都是 std::thread boost::thread 使用)说,

    线程ID只保证在进程中是唯一的。在终止的线程被连接或分离的线程终止后,可以重用线程ID。

    http://man7.org/linux/man-pages/man3/pthread_self.3.html

    可以 在同一进程中重用死线程的ID。

        2
  •  2
  •   Maxim Egorushkin    6 年前

    boost::this_thread::get_id pthread_self() :

    线程ID只保证在进程中是唯一的。在终止的线程被连接或分离的线程终止后,可以重用线程ID。

    返回的线程ID pthread\u self() 与调用返回的内核线程ID不同 gettid(2)