Datos específicos del hilo frente al almacenamiento local del hilo

He leido a kerriskLa interfaz de programación de Linux: Un manual de programación de sistemas Linux y UNIX, Capítulo 31 sobre Hilos. El capítulo incluye Datos específicos de subprocesos (Sección 31.3.4) y Almacenamiento local de subprocesos (Sección 31.4). Los temas fueron cubiertos en las páginas 663-669.

Datos específicos del hilo (pthread_key_create, pthread_setspecific, pthread_getspecific, y amigos) se ve más poderoso, pero parece ser un poco más incómodo de usar, y parece que usa el administrador de memoria con más frecuencia.

Almacenamiento local de hilo (__thread en declaraciones estáticas y globales) parece un poco menos potente ya que está limitado al tiempo de compilación, pero parece ser más fácil de usar, y parece permanecer fuera del administrador de memoria en tiempo de ejecución.

Podría estar equivocado acerca del administrador de memoria en tiempo de ejecución ya que podría haber un código detrás de la escena que llamepthread_key_create cuando se encuentra__thread variables

Kerrisk no ofreció una comparación / contraste de las dos estrategias, y no hizo una recomendación sobre cuándo usar cuál en una situación dada.

Para agregar contexto a la pregunta: estoy evaluando una biblioteca de terceros. La biblioteca usa globales, haceno utilizar el bloqueo, y quiero usarlo en un programa multihilo. El programa utiliza subprocesos para minimizar las latencias de red.

¿Hay un ganador indiscutiblemente? ¿O hay diferentes escenarios que justifican el uso de uno u otro?

Respuestas a la pregunta(2)

Su respuesta a la pregunta