La multitarea nos permite dividir el flujo del programa en distintas partes que pueden correr a la vez, de forma síncrona o asíncrona.
Podremos aplicar la multitarea cuando haya varias acciones a realizar y cada una sea independiente de la otra, de tal forma que la realización de una, no dependa de ninguna otra
Un ejemplo clásico podría ser una aplicación en la que el usuario solicita descargar “n” documentos. La primera posibilidad sería dar la orden de lectura, dejando al usuario esperando que se termine de cargar, la otra opción sería que, tras dar la orden de lectura, permitiéramos a nuestro usuario el ir revisando los documentos que ya se hayan descargado, y mientras tanto, seguir descargando el resto.
Cuando se inicia un programa en Java, la máquina virtual crea un hilo principal
- El hilo invoca al método main, que se comienza a ejecutar
- El hilo termina cuando se acaba de ejecutar el método main
- Si el hilo principal crea otros hilos, éstos comenzarán su ejecución de forma concurrente
- Cuando no queda ningún hilo activo, termina el programa
Proceso/Programa. Un proceso es la gestión de un flujo de control, visto en su totalidad, y que puede gestionar uno o varios hilos; si lanzamos varios procesos o un mismo proceso varias veces, tendremos varios trabajos corriendo concurrentemente
Características
- Disponen de su propio espacio de memoria
- La comunicación entre ellos se realiza con pipes y sockets
Hilo: Es un único flujo de control definido por nuestro programa. Si nuestro programa lanza varios hilos, tendremos varios trabajos corriendo concurrentemente, pero, y esa es la diferencia, compartiendo datos y código
Características
- Ejecución simultanea dentro de un proceso
- Espacio de memoria compartido
Multitarea: En nuestro entorno, es la posibilidad de hacer correr varios hilos a la vez
Sincronización: Es el mecanismo que nos permite controlar el acceso a un único recurso desde varios hilos.
En este apartado, veremos cómo hacer clases que puedan lanzar uno o varios hilos para ejecutar tareas de forma concurrente
Comparte esto:
- Comparte en Facebook (Se abre en una ventana nueva) Facebook
- Compartir en Telegram (Se abre en una ventana nueva) Telegram
- Compartir en WhatsApp (Se abre en una ventana nueva) WhatsApp
- Compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
- Compartir en X (Se abre en una ventana nueva) X
- Enviar un enlace a un amigo por correo electrónico (Se abre en una ventana nueva) Correo electrónico
- Más
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.