typestar

Almacenamiento local por hilo en C

_Thread_local le da a cada hilo su propia copia de una variable.

#include <stdio.h>

static _Thread_local int calls = 0;
static _Thread_local char scratch[64];

int bump_local(void) {
    calls++;
    snprintf(scratch, sizeof scratch, "call %d", calls);
    return calls;
}

const char *last_message(void) {
    return scratch;
}

Cómo funciona

  1. Cada hilo lee y escribe una instancia independiente.
  2. No hace falta lock, porque nada se comparte.
  3. Sirve para búferes de trabajo y contadores por hilo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
248
Tokens
58
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 33 segundos.

Escribe este fragmento

Paso 2 de 2 en Sin bloqueos y local; paso 9 de 10 en Hilos y concurrencia.

← Anterior Siguiente →