Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

147
Vistas
¿Las variables estáticas son automáticamente subprocesos locales?

¿Las variables static locales son automáticamente subprocesos locales o se comparten entre subprocesos?

 void f() { static int x; // <-- need explicit _Thread_local ? }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

static y _Thread_local especifican dos cosas diferentes.

Una variable declarada como static tiene una duración de almacenamiento estática y tiene una vida útil completa del programa. Una variable declarada _Thread_local tiene una duración de almacenamiento de subprocesos y existe una instancia para cada subproceso.

over 4 years ago · Santiago Trujillo Denunciar

0

Había static para las variables de alcance de bloque antes de que la especificación del lenguaje C reconociera los subprocesos o tuviera algún soporte para ellos, mucho menos _Thread_local específicamente. En ese contexto, cuando no se combina con _Thread_local , especifica la duración del almacenamiento estático , lo que significa que la variable existe (como si) al comienzo de la ejecución del programa y existe y mantiene su último valor almacenado durante toda la ejecución del programa. Todos los subprocesos comparten un objeto con duración de almacenamiento estático.

Por otro lado, _Thread_local siempre especifica la duración del almacenamiento del subproceso , lo que significa que el objeto así declarado existe y mantiene su último valor almacenado durante toda la vida útil de un subproceso, y que el identificador declarado designa un objeto diferente en cada subproceso. Cuando un objeto se declara _Thread_local en el alcance del bloque, también debe tener el calificador extern o static , que transmite su vinculación : externa o ninguna.

Las declaraciones extern de cualquier tipo en el alcance del bloque son inusuales, pero ocasionalmente tienen un propósito útil. Sin embargo, la mayoría de las veces, static _Thread_local es lo que deseará para las variables locales de subprocesos y alcance de bloque.

over 4 years ago · Santiago Trujillo Denunciar

0

Son valor compartido entre hilos. Como ya lo mencionó usted mismo, si desea que tenga un valor independiente para cada subproceso, declárelo como una línea que _Thread_local static int x;

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda