Uso de Busy Spinning como estrategia de espera en Java

Busy Spinning es una estrategia de espera en la que un subproceso espera que ocurra alguna condición que otro subproceso debe establecer. Aquí, el subproceso en espera se repite continuamente sin liberar los ciclos de la CPU. Esto conduce a un mal rendimiento ya que los ciclos de la CPU se desperdician por un subproceso … Continue reading «Uso de Busy Spinning como estrategia de espera en Java»

Expresiones Lambda | Enfoque de programación concurrente 4

Requisito previo: diferentes enfoques para la programación concurrente en Java Las expresiones lambda tienen un comportamiento muy similar al de las clases internas anónimas. Tienen acceso completo al código de las clases circundantes, incluidos los datos privados. Son mucho más concisos, sucintos y legibles . Sin embargo, las expresiones lambda no pueden tener variables de … Continue reading «Expresiones Lambda | Enfoque de programación concurrente 4»

Java.util.concurrent.CyclicBarrier en Java

CyclicBarrier se usa para hacer que los hilos se esperen unos a otros. Se usa cuando diferentes subprocesos procesan una parte del cálculo y cuando todos los subprocesos han completado la ejecución, el resultado debe combinarse en el subproceso principal. En otras palabras, CyclicBarrier se usa cuando varios subprocesos realizan diferentes subtareas y la salida … Continue reading «Java.util.concurrent.CyclicBarrier en Java»

¿Cómo monitorear el estado de un hilo en Java?

El lenguaje Java admite la sincronización de subprocesos mediante el uso de monitores. Un monitor está asociado con un elemento de datos específico y funciona como un bloqueo en esos datos. Cuando un subproceso retiene el monitor para algún elemento de datos, otros subprocesos se bloquean y no pueden inspeccionar ni modificar los datos. Para … Continue reading «¿Cómo monitorear el estado de un hilo en Java?»

Diferencia entre subprocesos Daemon y subprocesos de usuario en Java

En Java, hay dos tipos de hilos: Hilo de demonio Hilo de usuario Los subprocesos de daemon son subprocesos de baja prioridad que siempre se ejecutan en segundo plano y los subprocesos de usuario son subprocesos de alta prioridad que siempre se ejecutan en primer plano. User Thread o Non-Daemon están diseñados para realizar tareas … Continue reading «Diferencia entre subprocesos Daemon y subprocesos de usuario en Java»

¿Cómo resolver interbloqueos usando subprocesos en Java?

Si dos subprocesos se esperan el uno al otro para siempre, este tipo de espera infinita se denomina interbloqueo en Java . La palabra clave sincronizada es la única razón de la situación de interbloqueo, por lo tanto, al usar la palabra clave sincronizada, debemos tener especial cuidado. No existe una técnica de resolución para … Continue reading «¿Cómo resolver interbloqueos usando subprocesos en Java?»

La aplicación principal implementa Runnable | Enfoque de programación concurrente 2

Requisito previo: diferentes enfoques para la programación concurrente en Java Veamos el segundo enfoque en detalle. El usuario tiene la clase principal que implementa ejecutable , que es una promesa para el compilador de que la clase tendrá un método de ejecución . public class MyClass implements Runnable{ public void run(){ } } Luego, el … Continue reading «La aplicación principal implementa Runnable | Enfoque de programación concurrente 2»

Llamable y futuro en Java

Requisito previo: subprocesos , subprocesos múltiples La necesidad de Callable Hay dos formas de crear hilos: una extendiendo la clase Thread y otra creando un hilo con un Runnable. Sin embargo, una característica que falta en Runnable es que no podemos hacer que un subproceso devuelva un resultado cuando termina, es decir, cuando se completa … Continue reading «Llamable y futuro en Java»

Métodos de bloqueo en Java

Los métodos de bloqueo en Java son el conjunto particular de métodos que bloquean el hilo hasta que se completa su operación. Por lo tanto, tendrán que bloquear el hilo actual hasta que se cumpla la condición que cumple con su tarea. Dado que, en la naturaleza, estos métodos bloquean los llamados métodos de bloqueo. … Continue reading «Métodos de bloqueo en Java»