TLS可以不同线程调用相同函数(相同的参数)获得不同的值
即使pkey[1]都是一样的,但是指向的内存数据不一样
T& value() //获得值的引用 { T* perThreadValue = static_cast<T*>(pthread_getspecific(pkey_)); //通过getspecific获得储存的值的指针 if (!perThreadValue) //指针为空 { T* newObj = new T(); MCHECK(pthread_setspecific(pkey_, newObj)); perThreadValue = newObj; } return *perThreadValue; //返回其值 }