Skip to content

Latest commit

 

History

History

05-programacion-multihilo

Programación multihilo

1. Concepto relacionados con la programación multihilo

1.1. Proceso

  • Un proceso es el nombre que se le da a la instancia de cualquier programa de computadora que se ejecuta por 1 o más hilos.

  • Un proceso se puede entender como un conjunto de recursos (del CPU y la RAM) que se reservaron para llevar una tarea en particular.

htop

1.2. Hilo

  • Un hilo (thread en inglés), también es conocido como un proceso ligero.

  • Un hilo se considera como la unidad mínima de procesamiento.

    Ventajas
  • Mejor utilización de 1 solo CPU.

  • Mejora la experiencia de usuario, en el sentido que hace la aplicación más responsiva.

¡¡Hoy en día no podemos programar sin utilizar hilos!!

Cualquier aplicación real utiliza hilos, ya se de manera explicíta o implícita.

El uso de hilos es sobre todo muy común en el desarrollo móvil.

1.3. Programación multihilo

Debe entenderse como hacer programación haciendo uso de los hilos, por medio de un lenguaje de programación:

multithread
¿Quién ganará?
  • Java

  • C

  • Python

  • Ruby

1.4. Programación en paralelo

En el caso de esta forma de programar se utilizan múltiples recursos a nivel de procesador. En este caso se utilizan varios cores o núcleos del procesador para ejecutar nuestro programa.

parallel

1.5. Programación distribuida

La programación distribuida (o cómputo distribuido) se refiere ejecutar un sistema cuyos componentes se encuentran en diferentes computadora que están conectadas por medio de una red de datos, en la cuál se comunican y coordina por medio del intercambio de mensjaes de un servidor a otro.

distributed

2. Threads (hilos) en Java

thread

En Java se pueden usar hilos por medio de:

  • La clase Thread

  • Implementando la interfaz Runnable

2.1. Diagrama de estados

cycle

3. Sincronización de hilos

sync