Actividad 1 Programacion 3
Actividad 1 Programacion 3
En Java, un hilo (thread) pasa por varios estados a lo largo de su ciclo de vida:
Nuevo (New): El hilo se crea pero aún no ha comenzado a ejecutarse.
Ejecutable (Runnable): Después de invocar el método start(), el hilo
entra en este estado, donde está listo para ejecutarse y puede ser
seleccionado por el planificador de hilos.
En Ejecución (Running): El hilo es seleccionado por el planificador y está
ejecutando su tarea.
Bloqueado/Esperando (Blocked/Waiting): El hilo está en espera de un
recurso o evento, como la liberación de un bloqueo o la terminación de
otro hilo.
Terminando (Terminated): El hilo ha completado su ejecución o ha sido
interrumpido.
2) Cooperación entre Hilos:
La cooperación entre hilos es crucial para evitar conflictos y garantizar que los
hilos trabajen juntos de manera eficiente. Existen dos formas principales de
cooperación:
Sincronización: Se usa para controlar el acceso a los recursos
compartidos. Por ejemplo, mediante el uso de bloques sincronizados
(synchronized) o clases de sincronización como Lock, los hilos pueden
coordinarse para evitar condiciones de carrera.
Comunicación: Los hilos pueden comunicarse entre sí para coordinarse.
En Java, esto se logra utilizando métodos como wait(), notify(), y
notifyAll(), que permiten a un hilo esperar hasta que otro hilo complete
una tarea.
3) Modelo de Ejecución:
El modelo de ejecución en Java define cómo se crean, gestionan y finalizan los
hilos. Los hilos son administrados por el planificador de hilos de la JVM, que
decide cuál hilo debe ejecutarse en un momento dado. Java utiliza un modelo
de preemptive multitasking, donde el planificador puede interrumpir un hilo en
ejecución para dar paso a otro.