Cómo crear hilos y usar lenguaje C
2. La función de creación de subprocesos es la función pthread_create() y su prototipo es:
int? pthread_create(pthread_t?*thread, pthread_attr_t?*attr, void*?(*start_routine)(void*), void?* arg); 3. La función de salida del hilo es la función pthread_exit(), y el prototipo de esta función es :
¿Anulado? pthread_exit(void?* retval); El programa de muestra para crear un hilo es el siguiente:
/*
* *Descripción del programa: Utilice la función de creación de hilo pthread_create().
*/
#¿Contiene? & ltstdio.h & gt
#¿Contiene? & ltpthread.h & gt
¿#Contiene? & ltunistd.h & gt
#¿Incluir? & ltstdlib.h & gt
#¿Incluir? & ltstring.h & gt
//¿La función de imprimir el identificador
no es válida? print_ids(const?char?*str)
{
pid_t? pid//identificador de proceso
pthread_t? tid//Identificador del hilo
PID = getpid(); //Obtener el número del proceso
tid = pthread _ self(); //Obtener el número del hilo
printf("%s?pid:%u?tid:%u?(0x%x)\n ",
str, (unsigned? int)pid, (unsigned? int)tid , (sin firmar?int)tid);? //Imprimir el número de proceso y el número de hilo.
}
//Función de hilo
void*? pthread_func(void?*parameter)
{
print_ids("¿Nuevo? Tema:"); //Imprimir el nuevo número de hilo
¿Regresar? ((void *)0);
}
//Función principal
int? principal()
{
int? err
pthread_t? ntid//Número de hilo
err = pthread_create(& ntid, NULL, pthread_func, NULL); //Crear un hilo
If (uh?! =?0 )
{
printf("¿Crear? ¿Subproceso? Error: %s\n ", strerror(err));
Salir (-1);
}
print_ids("main? Thread:"); //Imprime el número del hilo principal
Sleep(2);
return? 0;
}