typestar

Hilos detached en C

Un hilo detached limpia tras de sí, y nunca puede esperarse con join.

#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

static void *background(void *arg) {
    (void) arg;
    printf("background work\n");
    return NULL;
}

int fire_and_forget(void) {
    pthread_t thread;
    if (pthread_create(&thread, NULL, background, NULL) != 0) {
        return 0;
    }
    if (pthread_detach(thread) != 0) {
        return 0;
    }
    sleep(1);
    return 1;
}

Cómo funciona

  1. pthread_detach libera los recursos al salir.
  2. No hay manera de recoger su valor de retorno.
  3. El hilo principal no debe salir mientras aún importe.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
21
Caracteres a escribir
341
Tokens
91
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 55 segundos.

Escribe este fragmento

Paso 3 de 3 en Arrancar hilos; paso 3 de 10 en Hilos y concurrencia.

← Anterior Siguiente →