理解1:函数 int pthread_setspecific(pthread_key_t key, const void *value); 一般是在线程中调用,它的作用是使本线程的key(每个线程各有一个)与指针value进行绑定,以后各个线程执行void *pthread_getspecific(pthread_key_t key)时(相同的key),pthread_getspecific返回的便是各个线程之前定义的不同的value指针地址。
理解2:int phread_once(pthread_once_t *onceptr, vid(*init)(void))是在线程中使用,保证init在各线程中只被调用一次。
若有线程1,线程2都调用phread_once,先调用的phread_once会执行init函数,后调用的phread_once会立即返回。不执行参数其中的init函数。