3.- Programación multihilo Flashcards
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funciones
- void start ()
- void run ()
- static Thread currentThread ()
- long getId ()
- static void sleep (long milis)
- void interrupt ()
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funcion void start ()
Inicializa el hilo.
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funcion void run ()
Comienza la ejecución del hilo.
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funcion static Thread currentThread ()
Devuelve la referencia del hilo que se encuentra en ejecución.
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funcion long getId ()
Devuelve el identificador del hilo.
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funcion static void sleep (long milis)
El hilo se detiene durante el número de milisegundos especificado.
3.1.- Programación de hilos. Librerías y clases
Clase Thread. Funcion void interrupt ()
Interrumpe la ejecución del hilo.
3.2.- Gestión de hilos
Proceso. Definición
Un proceso es cualquier programa en ejecución y es totalmente independiente de otros procesos.
3.2.- Gestión de hilos
Procesos. Relación con hilos
Un proceso puede tener varios hilos de ejecución que realizarán subtareas del proceso principal que los ha creado.
3.2.- Gestión de hilos
Hilo. Definición
Un hilo es un conjunto de tareas que se ejecutan por el sistema operativo. También se denominan hebras o subprocesos.
3.2.- Gestión de hilos
Hilos. Información propia
Los hilos contienen información propia, como, por ejemplo, su identificador y toda aquella información que sea necesaria para que la aplicación pueda comunicarse con el sistema, es decir, el contador del programa, la pila de ejecución y el estado de la CPU.
3.2.- Gestión de hilos
Hilos. Recursos compartidos
Mientras que los procesos se caracterizan por no compartir la memoria con la que trabajan y ser independientes entre ellos, lo hilos no son iguales. Estos últimos suelen compartir la memoria con la que trabajan, puesto que pertenecen al mismo proceso.
3.2.- Gestión de hilos
Hilos. Recursos compartidos. Navegador web
Un ejemplo que puede ayudar a entender este concepto es un navegador web. El navegador web es un proceso con un identificador. Dentro de ese navegador es posible crear diferentes pestañas que comparten la memoria.
3.2.- Gestión de hilos
Hilos. Recursos compartidos. Valores modificados
Cuando un hilo modifica un dato en la memoria, el resto de hilos del proceso pueden obtener este valor modificado.
3.2.- Gestión de hilos
Hilos. Ventajas
El uso de hilos en lugar de procesos tiene bastantes ventajas, entre las que se destacan dos
El uso de hilos en lugar de procesos tiene bastantes ventajas, entre las que se destacan dos:
* La creación de un hilo tiene un coste menor que la creación de un proceso, puesto que no es necesario reservar.
memoria para cada uno de ellos porque la comparten.
* Es más rápido cambiar de un hilo a otro que de un proceso a otro.
3.2.- Gestión de hilos
Hilos. Tareas
Estos hilos suelen ser utilizados la mayor parte de las ocasiones para llevar a cabo tareas en segundo plano, puesto que se reduce mucho el tiempo de realización de diversas tareas de forma simultánea.
3.2.- Gestión de hilos
Hilos. Java
Java es uno de los lenguajes de programación que permite trabajar con distintos hilos en el desarrollo de una aplicación.
3.3.- Progrmación multihilo
Programacion multihilo. Tiempo de ejecución
A la hora de desarrollar un software es necesario tener en cuenta qué tiempo de ejecución debe de tener como máximo una aplicación
3.3.- Progrmación multihilo
Programacion multihilo. Consumo de recursos
Es importante medir el consumo de recursos que esta ha utilizado. Cuando existe solo un proceso, existe la posibilidad de que el consumo de memoria RAM y recursos del procesador por parte del proceso en ejecución, sobrecargue el sistema.
3.3.- Progrmación multihilo
Programacion multihilo. Hilos de ejecución
Como solución a esto se han creado los hilos de ejecución que permiten ser ejecutados dentro de una aplicación de forma paralela y haciendo uso de otra parte del código. Hoy en día la programación de aplicaciones con estas características es fundamental.
3.3.- Progrmación multihilo
Programacion multihilo. Optimización del rendimiento
De esta forma, es posible ejecutar un hilo en primer
plano que permita la comunicación con el usuario, y, en
segundo plano, hilos que vayan ejecutando las diferentes tareas de carga de una aplicación. Con esto se consigue que el rendimiento del equipo esté más optimizado. Además, permiten al usuario trabajar con diferentes aplicaciones al mismo tiempo sin penalizar el rendimiento del equipo. Esto posibilita una gran cantidad de opciones como, por ejemplo, el trabajo en múltiples escritorios con diversas aplicaciones de forma paralela.
3.4.- Estados de un hilo
Hilos. Ciclo de vida
Al igual que los procesos, los hilos tienen un ciclo de vida en el que van pasando por diferentes estados.
3.4.- Estados de un hilo
Hilos. Estados
Los estados que pueden tener un hilo son
Los estados que pueden tener un hilo son:
* Listo
* Ejecución
* Bloqueado
* Muerto
3.4.- Estados de un hilo
Hilos. Estados. Listo
Se ha creado el hilo, pero aún no ha comenzado su ejecución.
3.4.- Estados de un hilo
Hilos. Estados. Ejecución
Cuando un objeto llama al método start() comienza la ejecución del hilo, es decir, se empiezan a ejecutar las instrucciones que se encuentran en el método run().
3.4.- Estados de un hilo
Hilos. Estados. Bloqueado
El hilo se ha parado pero puede volver a ejecutarse.