我正在尝试使用 pthreads 在 C++ 中实现一种简单的方法来存储和检索线程局部变量。类似于 Java 中的 ThreadLocal。我在创建线程时得到了创建 pthread_key_t 的部分,但是如何从线程代码中的任何位置获取该值?我可以使用 pthread_self 来获取我的线程 ID,但是一旦我有了这个,是否有可能获取 TLS key ?
P.S.:我知道 Boost 会这样做,但我没有使用 Boost
最佳答案
您通常不会在创建线程时创建 pthread_key_t
,而是在此之前的某个时间创建一次并将 key ID 保存在某处。
完成后,每个线程都有自己的键内容值,您可以使用 pthread_setspecific()
和 pthread_getspecific()
设置和获取内容分别。
关于c++ - 如何从 pthread ID 检索 pthread_key_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18236413/