Los hilos (threads) son una forma de dividir un programa en múltiples tareas que pueden ejecutarse concurrentemente. En C, los hilos se manejan comúnmente usando la biblioteca POSIX Threads (pthreads).
Para crear un hilo, se utiliza la función pthread_create
:
#include <pthread.h>
#include <stdio.h>
void* funcion_hilo(void* arg) {
printf("Hola desde el hilo\n");
return NULL;
}
int main() {
pthread_t hilo;
pthread_create(&hilo, NULL, funcion_hilo, NULL);
pthread_join(hilo, NULL);
return 0;
}
pthread_create
: Crea un nuevo hilo.pthread_join
: Espera a que un hilo termine.pthread_exit
: Termina la ejecución de un hilo.pthread_mutex_lock
y pthread_mutex_unlock
: Controlan el acceso a secciones críticas.Parámetros:
thread
: Un puntero a la estructura pthread_t
que contendrá el ID del hilo.attr
: Un puntero a la estructura pthread_attr_t
que especifica los atributos del hilo. Si es NULL
, se usan los atributos predeterminados.start_routine
: Un puntero a la función que será ejecutada por el hilo.arg
: Un puntero al argumento que se pasará a la función start_routine
.Retorno:
int
: 0 en caso de éxito, o un número de error en caso de fallo.Para más detalles, consulta la documentación de pthreads.
Documentación de POSIX Threads
Notas para principiantes:
pthread_join
para esperar a que un hilo termine antes de acceder a recursos compartidos.