Hilos
Dra. Irene Olaya Ayaquica Martínez
Facultad de Ciencias de la Computación Benemérita Universidad Autónoma de Puebla
Hilos (Threads)
Un hilo de ejecución o subproceso es unacaracterística que permite a una aplicación realizar varias tareas a la vez (concurrentemente). (concurrentemente) Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio dememoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. Un hilo esbásicamente una tarea que puede ser ejecutada en paralelo con otra tarea.
2
Hilos (Threads)
Un proceso, un hilo
Un proceso, múltiples hilos
múltiples procesos, un hilo
múltiples procesos,múltiples hilos
3
Hilos (Threads)
Creación: pthread_create(pthread_t *, const pthread_attr_t *, void * ( ) ( o d ), o d ) (*) (void *), void *)
la que se devolverá el identificador del nuevo hilohilo. pthread_attr_t * contiene la dirección del conjunto de atributos que tendrá el nuevo hilo. void * (*) (void *) contiene l di id id ti la dirección d l f ió de la función que ió ejecutará elnuevo hilo. void * es el parámetro que recibirá la función anterior.
4
pthread_t * es la dirección de una variable de tipo thread en
Hilos (Threads)
Punto de entrada: Antes de llamar apthread_create() es necesario definir el p punto de entrada en el que iniciará su ejecución el nuevo q j hilo, Es decir la función a la que se invocará desde el nuevo hilo decir, hilo. void * FuncionHilo(void*Parametro) { }
5
Hilos (Threads)
Terminación: La ejecución del nuevo hilo finalizará cuando se llegue al final p de la función o bien llamando explícitamente a la función:pthread_exit(void *)
void * es un parámetro que el hilo principal debe recuperar
como código de finalización del hilo que ha terminado.
6
Hilos (Threads)
Espera: La finalización del hilo principal...
Regístrate para leer el documento completo.