【发布时间】:2012-02-18 19:52:58
【问题描述】:
我在弄清楚 pthread_key_t 和 pthread_key_create 如何工作时遇到了一些麻烦。据我了解,每个线程都有 TLS(线程本地存储),并且一个密钥用于访问线程本地存储。我没有得到的是当一个密钥被创建时,每个线程都可以使用它吗?假设线程 0 创建密钥 0,线程 1 可以使用密钥 0 吗?如果线程 1 使用密钥 0,它会访问自己的 TLS 还是线程 0 的 TLS?
是否有一些全局数组或其他东西可以跟踪所有正在使用的键?
【问题讨论】:
-
对于新手,我建议阅读The Linux Programming Interface一书的31: Threads: Thread Safety and Per-Thread Storage,你会在那里得到你所有的答案。
标签: pthreads thread-local pthread-key-create