APUE中12.6节内的代码12-5实现的getenv感觉没有达到线程安全啊,求指教~
作者用线程私有数据实现了“线程安全”的getenv函数,但我觉得如果有多个线程同时调用这个getenv()函数的时候,依然返回的是同一个缓冲区的内容,没有达到线程安全。
求解释~谢谢!
如果需要具体的问题描述和相应代码,可以在我的博客看:http://blog.csdn.net/sad_sugar/article/details/18412603
多谢大家指教!!!
------解决方案--------------------
线程私有存储的使用是整个进程对某个pthread_key_t做一次 pthread_key_create,每个线程调用pthread_getspecific的时候取到自己的私有存储空间,你可以想象成是该key是一个map,每个线程用自己的线程id获取对应的空间
------解决方案--------------------
是的