如果在一个函数里创建了一个pthread_t然后调用了pthread_create创建一个线程可是这个函数后来退出了。那之前创建的线程怎么找到他的uid
在创建线程时,可以将pthread_t变量的地址作为参数传递给新线程。这样新线程就可以访问该变量,从而获取创建它的函数中的pthread_t变量的值。如果需要在新线程中使用该变量,可以将其作为参数传递给新线程的函数。另外,可以使用线程局部存储(Thread-local storage,TLS)来在每个线程中保存线程特定的数据。使用pthread_key_create()函数创建一个TLS键,并使用pthread_setspecific()函数将值与该键关联起来。之后,可以使用pthread_getspecific()函数来获取与该键关联的值。这样就可以在每个线程中保存线程特定的数据,而不必担心由于函数退出而导致数据丢失的问题。
原文地址: https://www.cveoy.top/t/topic/fq7W 著作权归作者所有。请勿转载和采集!