08 Concurrencia y Programación Multihilo Flashcards
¿Qué es la concurrencia en Java?
La capacidad de ejecutar múltiples tareas en paralelo.
¿Qué es un hilo (Thread
) en Java?
Una unidad de ejecución dentro de un proceso.
¿Cómo se crea un hilo en Java?
Usando la clase Thread
o implementando Runnable
.
¿Qué diferencia hay entre Thread
y Runnable
?
Thread
es una clase; Runnable
es una interfaz funcional.
¿Qué es el método start()
en Thread
?
Inicia la ejecución de un hilo.
¿Qué es run()
en un hilo?
Define el código que ejecutará el hilo.
¿Qué es un ExecutorService
?
Un administrador de hilos que permite controlarlos eficientemente.
¿Qué hace submit()
en un ExecutorService
?
Ejecuta una tarea en un hilo del pool.
¿Qué es Future<T>
en Java?
Un objeto que representa el resultado de una operación asíncrona.
¿Cómo se detiene un hilo en Java?
Usando interrupt()
y verificando Thread.interrupted()
.
¿Qué es synchronized
en Java?
Una palabra clave para evitar condiciones de carrera.
¿Qué son wait()
, notify()
y notifyAll()
?
Métodos para comunicación entre hilos.
¿Qué es Lock
en Java?
Una alternativa más flexible a synchronized
.
¿Qué diferencia hay entre ReentrantLock
y synchronized
?
ReentrantLock
permite más control y características adicionales.
¿Qué es Callable<V>
en Java?
Una interfaz similar a Runnable
, pero que devuelve un resultado y puede lanzar excepciones.
¿Qué es CountDownLatch
?
Una herramienta de sincronización que bloquea hilos hasta que un contador llega a cero.
¿Qué es CyclicBarrier
?
Un mecanismo de sincronización que permite que un grupo de hilos espere entre sí.
¿Qué es ForkJoinPool
?
Un framework para dividir tareas en subtareas y combinarlas.
¿Qué hace CompletableFuture
?
Proporciona una forma flexible de manejar programación asíncrona sin bloquear.
¿Cómo se maneja la concurrencia en Stream.parallel()
?
Divide el procesamiento de los datos en múltiples hilos para mejorar el rendimiento.