我不明白使用pthread_key_create的原因,你能说出原因吗?

时间:2013-01-09 13:11:37

标签: c pthreads pthread-key-create

我们可以在使用pthread_create /(不是 key _ )时将参数传递给线程,如果它超过了每个线程的值。如果使用静态存储,我们使用互斥锁,那么,我们使用pthread_key_create是什么意思?以示例&强调它为什么诞生(应用和需要它)? 我听说它对于迁移单线程应用程序很有用,但它们仍然使用互斥锁。那么,有什么意义呢?

谢谢!

1 个答案:

答案 0 :(得分:3)

pthread_key_create用于为一个线程本地存储创建唯一标识符。

然后,每个线程可以为每个键存储不同的值。这在迁移最初使用全局变量的代码时很有用,但是您希望每个执行线程都有自己独立的全局值版本。您可以使用线程本地存储来代替全局存储。

访问属于您所在线程的线程本地数据时,不需要使用互斥锁。