Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

146
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!