hilos en linux
Definición de thread Es un mecanismo por el cual un programa puede hacer mas de una cosa al mismo tiempo.Como los procesos, los threads parecen correr simultáneamente; pero hay que tener el concepto que el sistema corre una tarea por vez, y esto lo administra el Scheduller. Excepción a estos son los sistemas tengan la capacidad de correr mas de un proceso simultáneamente como en el caso de las arquitectura de multi procesamiento simétrico (SMP). Podemos decir entonces que un programa que crea un thread tendrá a partir de ese momento dos “timeslot's” en la cola de ejecución del scheduller. Pero estos dos timeslots's están ejecutando un mismo programa, muy probablemente en puntos de ejecución distintos y comparten el mismo espacio de memoria, descriptores de archivos y otros recursos del sistema. Esta característica de compartir espacio de memoria y descriptores de archivos facilita la comunicación entre los threads y el programa que los creó. Es decir la problemática de ICP (InterProcess Communication) está resuelta. Pero nada podemos asegurar en cuanto a la ejecución. Mucho menos que estos guardén alguna relación en los tiempos de ejecución. Estos temas son privados de Scheduller. No porque un programa creó un thread podemos asegurar que siempre se ejecutará el programa padre antes que el thread, por ejemplo.
Threadimplementado en Linux Cuando se crea un thread en Linux(utilizando pthread_create) , se crea un nuevo proceso que ejecuta el thread de referencia. Pero a diferencia de un proceso creo con fork, este nuevo proceso comparte el espacio de memoria, descriptores de archivos y otros recursos del sistema; con el proceso que originó el thread.
Creando un thread en LinuxEl siguiente programa crea un thread. #include #include
void* print_xs (void* unused){ while(1) fputc('x',stderr); return NULL; }
int main (){ pthread_t thread_id;...
Regístrate para leer el documento completo.