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
pthread_detachlibera los recursos al salir.- No hay manera de recoger su valor de retorno.
- El hilo principal no debe salir mientras aún importe.
Palabras clave y builtins usados aquí
NULLifintreturnstaticthreadvoid
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.
Paso 3 de 3 en Arrancar hilos; paso 3 de 10 en Hilos y concurrencia.