我们可以在使用pthread_create /(不是 key _ )时将参数传递给线程,如果它超过了每个线程的值。如果使用静态存储,我们使用互斥锁,那么,我们使用pthread_key_create是什么意思?以示例&强调它为什么诞生(应用和需要它)? 我听说它对于迁移单线程应用程序很有用,但它们仍然使用互斥锁。那么,有什么意义呢?
谢谢!
答案 0 :(得分:3)
pthread_key_create
用于为一个线程本地存储创建唯一标识符。
然后,每个线程可以为每个键存储不同的值。这在迁移最初使用全局变量的代码时很有用,但是您希望每个执行线程都有自己独立的全局值版本。您可以使用线程本地存储来代替全局存储。
访问属于您所在线程的线程本地数据时,不需要使用互斥锁。