Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Java para programadores (6.5): Multitarea. Conceptos

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

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.149.234.251
Proxy: 3.149.234.251
Remote host: ec2-3-149-234-251.us-east-2.compute.amazonaws.com
Remote port: 48558
** 3.149.234.251, 172.69.6.195