Interrumpir un hilo en Java

En subprocesos de Java, si algún subproceso está en estado de suspensión o espera (es decir, se invoca sleep() o wait()), al llamar al método interrupt() en el subproceso, se rompe el estado de suspensión o espera y se genera InterruptedException. Si el subproceso no está en estado de suspensión o espera, llamar al método … Continue reading «Interrumpir un hilo en Java»

Sincronización de métodos y bloques en Java

Los subprocesos se comunican principalmente compartiendo el acceso a los campos y los campos de referencia de objetos a los que se refieren. Esta forma de comunicación es extremadamente eficiente, pero hace posibles dos tipos de errores: interferencia de subprocesos y errores de consistencia de la memoria. Se necesitan algunas construcciones de sincronización para evitar … Continue reading «Sincronización de métodos y bloques en Java»

¿Cómo usar el semáforo de conteo en una aplicación Java concurrente?

Java Counting Semaphore mantiene un número específico de pases o permisos, y el subproceso actual debe obtener un permiso para acceder a un recurso compartido. Si un permiso ya está agotado por otros subprocesos, puede esperar hasta que el permiso esté disponible como resultado de la liberación de permisos de varios subprocesos. Esta utilidad de … Continue reading «¿Cómo usar el semáforo de conteo en una aplicación Java concurrente?»

Diferencia entre colecciones tradicionales y colecciones concurrentes en java

Todos conocemos las colecciones tradicionales (es decir , List , Set , Queue y sus clases implementadas) y las colecciones concurrentes (es decir, la interfaz ConcurrentMap, la clase ConcurrentHashMap, la clase CopyOnWriteArrayList, etc.). En estas dos colecciones, hay pocas diferencias como: La mayoría de las clases que están presentes en las colecciones tradicionales (es decir … Continue reading «Diferencia entre colecciones tradicionales y colecciones concurrentes en java»

Salida de Programas Java | Conjunto 46 (multihilo)

Requisito previo: subprocesos múltiples en Java 1. ¿Cuál será el resultado del programa? class Test extends Thread { public     void run()     {         System.out.println(«Run»);     } } class Myclass { public     static void main(String[] args)     {         Test t = new Test();         t.start();     } } Opciones: 1. Un hilo creado 2. Dos hilos creados 3. Depende del sistema … Continue reading «Salida de Programas Java | Conjunto 46 (multihilo)»

¿Cómo obtener la identificación de un subproceso en ejecución actual en Java?

El método getId() de la clase Thread devuelve el identificador del hilo invocado. El ID del hilo es un número largo positivo generado cuando se creó este hilo. El ID del subproceso es único y permanece sin cambios durante su vigencia. Cuando se termina un subproceso, este ID de subproceso se puede reutilizar. Java permite … Continue reading «¿Cómo obtener la identificación de un subproceso en ejecución actual en Java?»

Nivel de objeto y bloqueos de nivel de clase en Java

Sincronización:  La sincronización es un modificador que se usa solo para el método y los bloques. Con la ayuda de un modificador sincronizado, podemos restringir el acceso a un recurso compartido solo por un hilo. Cuando dos o más subprocesos necesitan acceso a los recursos compartidos, hay alguna pérdida de datos, es decir, inconsistencia de … Continue reading «Nivel de objeto y bloqueos de nivel de clase en Java»

Prioridad de subprocesos de Java en subprocesos múltiples

Como ya sabemos, Java, que está completamente orientado a objetos, funciona dentro de un entorno de subprocesos múltiples en el que el programador de subprocesos asigna el procesador a un subproceso en función de la prioridad del subproceso. Cada vez que creamos un hilo en Java, siempre tiene asignada alguna prioridad. JVM puede dar prioridad … Continue reading «Prioridad de subprocesos de Java en subprocesos múltiples»

¿Cómo usar bloqueos en el programa Java de subprocesos múltiples?

Un bloqueo puede ser un mecanismo de sincronización de subprocesos más flexible y complicado que el bloque sincronizado estándar. Un candado puede ser una herramienta para controlar el acceso a un recurso compartido por varios subprocesos. Por lo general, un bloqueo proporciona acceso exclusivo a un recurso compartido: solo un subproceso a la vez puede … Continue reading «¿Cómo usar bloqueos en el programa Java de subprocesos múltiples?»

Punto muerto y hambre en Java

Deadlock : Deadlock es una situación en la que dos subprocesos están esperando el uno al otro y la espera nunca termina. Aquí ambos hilos no pueden completar sus tareas.  JAVA // Java program to illustrate Deadlock situation class DeadlockDemo extends Thread {     static Thread mainThread;     public void run()     {         System.out.println(«Child Thread waiting for» + … Continue reading «Punto muerto y hambre en Java»