线程私有数据的个人理解

理解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函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章