Linux系统中Pthread具体数据

问题描述 投票:0回答:1

在Linux系统中,我们可以使用pthread进行多线程编程,并且在pthread中有一个pthread特定数据,我们应该首先在其中创建一个密钥。但是 pthread 特定数据的目的是什么,我已经使用 google 和 chatgpt 来了解这是什么,但我不明白。这和线程本地存储一样吗?

c pthreads systems-programming
1个回答
0
投票

在 pthread 中有一个 pthread 特定数据,我们应该首先在其中创建一个键。

我指的是通过

pthread_setspecific()
pthread_getspecific()
访问的数据,使用通过
pthread_key_create()
创建的键。

这和线程本地存储一样吗?

是的,pthreads 线程特定数据是线程本地存储的一种形式。通过给定键访问的数据特定于访问它的线程。不同的线程各自访问自己的线程。

此外,可以将析构函数与键相关联,每个线程将单独使用该函数,以在线程终止时清理与该键关联的对象。

自 C11 起,标准 C 具有

_Thread_local
限定符,它提供了不同的、更简单的机制,但没有提供析构函数。

© www.soinside.com 2019 - 2024. All rights reserved.