semaforos - sincronizar hilos en c
¿Cómo comienzo los hilos en C simple? (5)
AFAIK, ANSI C no define el subprocesamiento, pero hay varias bibliotecas disponibles.
Si está ejecutando en Windows, enlace a msvcrt y use _beginthread o _beginthreadex.
Si está ejecutando en otras plataformas, consulte la biblioteca pthreads (estoy seguro de que hay otras también).
He usado fork () en C para comenzar otro proceso. ¿Cómo comienzo un nuevo hilo?
Los subprocesos no forman parte del estándar C, por lo que la única forma de utilizar subprocesos es usar alguna biblioteca (por ejemplo: subprocesos POSIX en Unix / Linux, _beginthread / _beginthreadex si desea usar el C-runtime desde ese subproceso o simplemente CreateThread Win32 API)
Mira la biblioteca pthread (hilo POSIX).
pthreads es un buen comienzo, mira aquí
Como mencionaste fork (), supongo que estás en un sistema tipo Unix, en cuyo caso los hilos POSIX (generalmente denominados pthreads) son los que quieres usar.
Específicamente, pthread_create () es la función que necesita para crear un nuevo hilo. Sus argumentos son:
int pthread_create(pthread_t * thread, pthread_attr_t * attr, void *
(*start_routine)(void *), void * arg);
El primer argumento es el puntero devuelto a la identificación del hilo. El segundo argumento son los argumentos de subprocesos, que pueden ser NULL a menos que desee iniciar el subproceso con una prioridad específica. El tercer argumento es la función ejecutada por el hilo. El cuarto argumento es el único argumento que se pasa a la función de subprocesos cuando se ejecuta.