如果成功, pthread_key_create () 将返回 0 并将新创建的密钥标识存储在key中。 如果失败, pthread_key_create () 将返回 -1 并将 errno 设置为下列其中一个值: 错误代码 描述 再次 没有足够的系统资源来创建另一个特定于线程的数据密钥,或者每个进程的密钥总数超过了限制。
The pthread_key_create() function creates a thread-specific data key visible to all threads in the process. Key values provided by pthread_key_create() are opaque...
l 调用pthread_key_create() 来创建该变量。该函数有两个参数,第一个参数就是上面声明的pthread_key_t变量,第二个参数是一个清理函数,用来在线程释放该线程存储的时候被调用。该函数指针可以设成 NULL ,这样系统将调用默认的清理函数。 l 当线程中需要存储特殊值的时候,可以调用pthread_setspcific() 。该函数有...
pthread_key_t *key; void (*destructor) (void *); 描述 pthread_key_create子例程创建特定于线程的数据密钥。 该密钥在进程中的所有线程之间共享,但每个线程都有与该密钥关联的特定数据。 特定于线程的数据是空指针,最初设置为NULL。 应用程序负责确保对每个请求的密钥仅调用此子例程一次。 例如,可以通过在创...
int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));第一个参数为指向一个键值的指针,第二个参数指明了一个destructor函数, 如果这个参数不为空,那么当每个线程结束时,系统将调用这个函数来释放绑定在这个键上的内存块。 key一旦被创建,所有线程都可以访问它,但各线程可根据自己的需要往ke...
pthread_key_create– create thread-specific data keySYNOPSIScc –mt [ flag... ] file... –lpthread [ -lrt library... ] #include <pthread.h> int pthread_key_create(pthread_key_t *key, void (*destructor, void*));DESCRIPTIONThis function creates a thread-specific data key visible to ...
intpthread_key_create(pthread_key_t *key, void (*destructor)(void*));创建线程私有数据 intpthread_key_delete(pthread_key_t key);注销线程私有数据 说明: 函数pthread_key_create() 用来创建线程私有数据。该函数从 TSD 池中分配一项,将其地址值赋给 key 供以后访问使用。第 2 个参数是一个销毁函数,...
1. 当调用pthread_key_create时,该函数首先生成一个全局唯一的键值,即获取一个可以唯一标识该线程特定数据的标识符。 2.然后,该函数会在进程的线程特定数据表中注册该键值。线程特定数据表存储了当前进程中所有线程的线程特定数据。 3.接下来,该函数会为每个现有的线程分配一个存储该线程特定数据的空间,这个空间可以...
函数原型为:int pthread_key_create(pthread_key_t *key, void (*destructor)(void*)); 13.pthread_setspecific():用于设置指定键的值。函数原型为:int pthread_setspecific(pthread_key_t key, const void *value); 14.pthread_getspecific():用于获取指定键的值。函数原型为:void* pthread_getspecific(...