Pthread - 线程特定数据(thread-specified data)
在 Pthread 中,线程特定数据(thread-specified data,以下简称 TSD)是绑定由pthread_key_create()函数创建的 key 的属于调用线程自身的数据。简单地说就是一个全局变量可以被多个线程访问,但是在每个线程中该全局变量指向由本线程设定的值,而且每个线程都可以通过该全局变量访问到本线程设定的值,彼此互不干扰。以下是操作 TSD 的函数:
void *pthread_getspecific(pthread_key_t key); int pthread_setspecific(pthread_key_t key, const void *value); int pthread_key_create(pthread_key_t *key, void (*destructor)(void *)); int pthread_key_delete(pthread_key_t key);
以下为测试程序:
#include <unistd.h>
#include <errno.h>
#include <pthread.h>
#include <stdio.h>