wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Hilos Java

Total questions: 62

Worksheet time: 39mins

Name
Class
Date
1.

Atributo de la clase Thread

a)

Name

b)

Status

c)

Terminated

d)

Runnable

2.

Estado de un hilo que espera un recurso para poder continuar

a)

Terminated

b)

Blocked

c)

Runnable

d)

Waiting

3.

Una aplicación requiere usar hilos cuando

a)

Presenta muchos errores de ejecución

b)

Demora mucho atendiendo cierto proceso

c)

Utiliza gráficos en 2D

d)

Hace conexión a una base de datos

4.

Esta forma de trabajo se usa con un solo microprocesador para tener en ejecución varios programas

a)

Monoproceso

b)

Multiproceso

c)

Multitarea

d)

Planificación

5.

Al invocar el método sleep() en un hilo ocurre esto con el hilo

a)

pasa a estado "runnable"

b)

Se bloquea

c)

Termina

d)

espera un tiempo definido

6.

Para que un hilo salga del estado "WAITING"

a)

se invoca notify()

b)

se invoca sleep()

c)

se invoca yield()

d)

se invoca stop()

7.

Un hilo llega al estado "TERMINATED" cuando

a)

Terminan el método start()

b)

Se invoca le método notify()

c)

Termina el método run()

d)

Se invoca el método wait()

8.

El método start() sirve para

a)

Hacer que el proceso esté listo para ejecución

b)

Suspender una tarea durante un tiempo

c)

Terminar un hilo

d)

Hacer que un proceso espere a otro

9.

Elige el código de la estructura básica de un hilo

a)

1

b)

2

c)

3

d)

4

10.

Un proceso es

a)

El diseño de un programa

b)

Un código fuente

c)

Un algoritmo estructurado

d)

Un programa en ejecución

11.

Todo proceso requiere

a)

memoria y procesador

b)

memoria y disco duro

c)

procesador y disco duro

12.

Un proceso que está en estado "terminado"

a)

Es eliminado del disco duro

b)

Espera recursos para continuar trabajando

c)

Bloquea a otros procesos acaparando recursos

d)

Ya no puede recibir tiempo de procesamiento

13.

¿Qué método se utiliza para pausar la ejecución de un hilo durante un tiempo específico?

a)

pause()

b)

wait()

c)

stop()

d)

sleep()

14.

Un hilo en estado "RUNNABLE" significa que

a)

Ha terminado su ejecución

b)

Está esperando recursos

c)

Está en ejecución

d)

Está bloqueado

15.

¿Cuál de las siguientes afirmaciones es verdadera sobre los hilos?

a)

Los hilos no comparten memoria

b)

Los hilos pueden ejecutarse en paralelo

c)

Los hilos siempre se ejecutan en el mismo núcleo

d)

Los hilos no pueden ser interrumpidos

16.

¿Cómo podemos asegurar la exclusividad de ejecución de un hilo en una zona crítica del código?

a)

Que los métodos sean synchronized.

b)

Que las variables/atributos sean Atómicas.

c)

Que la zona de código crítico sea synchronized.

d)

Todas las anteriores.

17.

Cuando vamos a programar un hilo, que método contendrá toda la ejecución.

a)

main()

b)

Constructor

c)

run()

d)

start()

18.

public class MyClass {

public static void main(String[] args) {

(a)   ("Hello World");

}

}

19.

Señala la correcta

a)

int num = "9";

b)

int num = 6

c)

int = 4;

d)

int num = 3;

20.

que significa JDK?

a)

JAVA DEVELOPMENT KIT

b)

JAVA DEPENDENCY KIT

c)

JAVA DISARM KIT

d)

JAVA DECREASE KIT

21.

Elija la opción correcta acerca de declaración de variables

a)

string nombre = "Carla";

b)

String nombre = "Carla";

c)

String nombre = "Carla";

d)

string nombre = 'C';

22.

Crea una variable velocidad y asigna el valor de 120

(a)  

23.

Para definir una variable en java para la estatura de una persona ¿Cuál es la instrucción correcta?

a)

short estatura;

b)

boolean estatura;

c)

float estatura;

d)

String estatura

e)

char estatura;

24.

en Java como escribo que A es mayor que o igual a B ?

a)

A >= B

b)

A <= B

c)

A != B

d)

A > B

25.
¿Qué término describe una situación en la que el resultado de un programa concurrente depende de la secuencia o el momento incontrolado de operaciones de subprocesos múltiples?
a)
Condición de carrera
b)
Interbloqueo
c)
Inanición
d)
Espera ocupada
26.
En concurrencia, ¿qué es un interbloqueo (deadlock)?
a)
Una situación en la que dos o más hilos están permanentemente bloqueados esperando recursos que el otro ha bloqueado.
b)
Cuando un hilo consume continuamente todos los recursos, impidiendo que otros hilos se ejecuten.
c)
La ejecución ineficiente de un hilo que constantemente revisa una condición en un bucle.
d)
Un error en el que la salida depende del orden de ejecución de los hilos.
27.
¿Qué concepto de concurrencia se refiere a la situación en la que un hilo puede no obtener acceso a un recurso compartido por un período indefinido porque otros hilos lo están utilizando continuamente?
a)
Inanición (Starvation)
b)
Condición de carrera
c)
Interbloqueo
d)
Exclusión mutua
28.
¿Qué significa la espera ocupada (busy-waiting) en el contexto de la concurrencia?
a)
Un hilo espera una condición al sondear continuamente un valor en un bucle, consumiendo ciclos de CPU.
b)
Un hilo está esperando activamente un recurso mientras realiza cálculos complejos.
c)
Un hilo cede su tiempo de CPU a otros hilos voluntariamente.
d)
Un hilo entra en un estado de sueño para liberar la CPU.
29.
¿Qué mecanismo asegura que solo un hilo pueda acceder a un recurso compartido o sección crítica a la vez?
a)
Exclusión mutua
b)
Condición de carrera
c)
Interbloqueo
d)
Inanición
30.
Cuando un hilo en Java está en el estado RUNNABLE, ¿qué significa?
a)
El hilo está listo para ejecutarse y puede estar ejecutándose o esperando su turno en el programador de CPU.
b)
El hilo está ejecutándose actualmente.
c)
El hilo ha completado su ejecución.
d)
El hilo está bloqueado y esperando un monitor.
31.
Un hilo en Java entra en el estado BLOCKED cuando:
a)
Intenta acceder a un bloque synchronized pero otro hilo ya posee el monitor.
b)
Llama al método sleep().
c)
Llama al método wait().
d)
Ha terminado su ejecución.
32.
¿Qué estado de hilo en Java indica que un hilo está esperando indefinidamente otro hilo para realizar una acción, como notificar o terminar?
a)
WAITING
b)
BLOCKED
c)
TIMED_WAITING
d)
RUNNABLE
33.
¿En qué estado se encuentra un hilo de Java si llama a sleep(1000)?
a)
TIMED_WAITING
b)
WAITING
c)
BLOCKED
d)
RUNNABLE
34.
¿Qué estado de hilo en Java indica que el hilo ha completado su ejecución y ha terminado?
a)
TERMINATED
b)
NEW
c)
RUNNABLE
d)
WAITING
35.
¿Cuál es el propósito principal del método start() en un objeto de tipo Thread?
a)
Registrar el hilo con el programador de hilos de la JVM y comenzar la ejecución del método run() del hilo en un hilo nuevo.
b)
Ejecutar el código del hilo directamente en el hilo actual.
c)
Pausar la ejecución del hilo durante un tiempo específico.
d)
Registrar el hilo con la JVM pero no iniciar su ejecución.
36.
Cuando se anula el método run() de la clase Thread o se implementa en la interfaz Runnable, ¿qué contiene?
a)
El código que se ejecutará en el nuevo hilo.
b)
La lógica para pausar el hilo.
c)
La lógica para iniciar un nuevo hilo.
d)
El código para sincronizar el acceso a recursos.
37.
¿Qué hace el método estático Thread.sleep(long milliseconds)?
a)
Hace que el hilo actual pause la ejecución durante un número específico de milisegundos.
b)
Pone el hilo en el estado BLOCKED hasta que se despierte.
c)
Permite que el hilo actual ceda voluntariamente su tiempo de CPU a otros hilos.
d)
Espera a que otro hilo termine antes de continuar la ejecución.
38.
¿Qué método en Java se utiliza para hacer que el hilo actual espere hasta que el hilo en el que se llama el método join() termine su ejecución?
a)
join()
b)
sleep()
c)
wait()
d)
notify()
39.
¿Cuál es el propósito del método wait() en un objeto, y qué sucede con el bloqueo del monitor?
a)
Libera el bloqueo del monitor del objeto y pone el hilo actual en el estado WAITING hasta que otro hilo llama a notify() o notifyAll() en el mismo objeto.
b)
Hace que el hilo actual se detenga por un tiempo específico sin liberar el bloqueo del monitor.
c)
Despierta un hilo que está esperando en el bloqueo del monitor del objeto sin que el hilo actual libere el bloqueo.
d)
Pone el hilo en un estado BLOCKED indefinidamente.
40.
¿Qué hace la palabra clave synchronized en Java?
a)
Asegura que solo un hilo a la vez pueda ejecutar un bloque de código o método específico para un objeto dado.
b)
Crea un nuevo hilo para ejecutar el código.
c)
Pausa la ejecución del hilo durante un período de tiempo fijo.
d)
Fuerza un hilo a ceder su tiempo de CPU a otros hilos.
41.
¿Cuál es la forma más común de crear un hilo en Java aparte de extender la clase Thread?
a)
Implementando la interfaz Runnable.
b)
Implementando la interfaz Callable.
c)
Usando la clase Timer.
d)
Mediante el uso de expresiones lambda directamente.
42.
¿Qué excepción se lanza si un hilo que está esperando o durmiendo es interrumpido por otro hilo?
a)
InterruptedException
b)
IllegalThreadStateException
c)
NullPointerException
d)
RuntimeException
43.
¿Cuándo se lanza una IllegalThreadStateException en Java?
a)
Cuando un hilo intenta iniciar otro hilo que ya está en ejecución.
b)
Cuando un hilo intenta acceder a un recurso nulo.
c)
Cuando un hilo se interrumpe durante su ejecución.
d)
Cuando dos hilos intentan acceder al mismo recurso sincronizado simultáneamente.
44.
¿Qué método de la clase Object se utiliza para despertar a todos los hilos que están esperando en el monitor de ese objeto?
a)
notifyAll()
b)
notify()
c)
sleep()
d)
wakeAll()
45.
En un sistema bancario, varios hilos intentan actualizar simultáneamente el saldo de una misma cuenta bancaria. Si no se usa ningún mecanismo de sincronización, ¿qué problema de concurrencia podría surgir?
a)
Condición de carrera
b)
Interbloqueo
c)
Inanición
d)
Espera ocupada
46.
Tienes una aplicación web donde múltiples usuarios intentan comprar el último artículo disponible en un inventario limitado al mismo tiempo. ¿Qué mecanismo de concurrencia es esencial para garantizar que solo un usuario compre el último artículo?
a)
Exclusión mutua
b)
Inanición
c)
Espera ocupada
d)
Interbloqueo
47.
En un patrón productor-consumidor... ¿Qué métodos de Object se usarían para gestionar estas esperas y notificaciones?
a)
wait() y notify()/notifyAll()
b)
start() y run()
c)
sleep() y yield()
d)
join() y interrupt()
48.
En un escenario de productor-consumidor, si el productor está esperando porque la cola está llena y el consumidor está esperando porque la cola está vacía, ¿qué problema potencial podría surgir si las notificaciones no se manejan correctamente?
a)
Interbloqueo
b)
Inanición
c)
Condición de carrera
d)
Espera ocupada
49.
Una aplicación tiene varios hilos escribiendo simultáneamente registros en una base de datos... ¿Qué característica de la base de datos es crucial para manejar esta escritura concurrente?
a)
Mecanismos de bloqueo y transacciones
b)
Capacidad de almacenamiento ilimitada
c)
Alto rendimiento de lectura
d)
Soporte para consultas SQL complejas
50.
Al realizar escrituras concurrentes en una base de datos, si múltiples hilos intentan modificar el mismo registro, ¿qué problema de concurrencia es el más probable si no se gestionan adecuadamente los bloqueos?
a)
Pérdida de actualizaciones o inconsistencia de datos
b)
Inanición del procesador
c)
Desbordamiento de la pila
d)
Error de conexión a la base de datos
51.
En un sistema operativo, hay varios procesos con diferentes prioridades que compiten por el tiempo de la CPU. Un proceso de baja prioridad podría nunca ejecutarse... ¿Qué problema de concurrencia describe este escenario?
a)
Inanición (Starvation)
b)
Interbloqueo
c)
Condición de carrera
d)
Espera ocupada
52.
¿Qué técnica de planificación de hilos se utiliza comúnmente para evitar la inanición, donde a los procesos o hilos de baja prioridad se les da gradualmente más prioridad para asegurar que eventualmente se ejecuten?
a)
Envejecimiento (Aging)
b)
Planificación por prioridad estática
c)
Planificación Round Robin sin envejecimiento
d)
Multiprocesamiento simétrico
53.
Un sistema distribuye tareas a un grupo de trabajadores (hilos) en un 'pool' de hilos... ¿qué problema podría surgir si las tareas no se priorizan o gestionan adecuadamente?
a)
Inanición de tareas
b)
Desbordamiento de pila
c)
Condición de carrera
d)
Interbloqueo
54.
Para evitar la inanición en un escenario donde hilos de alta prioridad monopolizan los recursos, ¿qué principio de diseño de sistemas concurrentes debería aplicarse?
a)
Garantizar un acceso justo y limitado en el tiempo a los recursos compartidos
b)
Prioridad infinita a hilos críticos
c)
Uso de espera ocupada para todos los hilos
d)
Desactivar la sincronización para mejorar el rendimiento
55.
En un sistema que monitorea 1000 estaciones meteorológicas, ¿cuál es el beneficio principal de usar múltiples hilos para leer y procesar la información?
a)
Mejorar la capacidad de respuesta y el rendimiento al procesar datos de forma simultánea.
b)
Reducir el consumo de memoria del sistema.
c)
Simplificar el código al eliminar la necesidad de sincronización.
d)
Asegurar que todas las estaciones se actualicen secuencialmente en un orden predefinido.
56.
Para el tablero de consulta de estadísticas en tiempo real, ¿qué tipo de mecanismo de concurrencia sería más adecuado para actualizar los datos sin bloquear el hilo principal de la interfaz de usuario?
a)
Implementar un hilo de fondo que recopile y agregue datos, y un mecanismo de notificación para el hilo de la UI.
b)
Usar Thread.sleep() para pausar las actualizaciones periódicamente.
c)
Realizar todas las lecturas y cálculos en el hilo de la interfaz de usuario.
d)
Usar synchronized en todas las operaciones de lectura de datos para garantizar la consistencia.
57.
Si varios hilos procesan datos de las estaciones y necesitan actualizar estadísticas compartidas... ¿qué problema de concurrencia podría ocurrir si no se utiliza una exclusión mutua adecuada?
a)
Condición de carrera
b)
Interbloqueo
c)
Inanición
d)
Espera ocupada
58.
Para el sistema de alertas de inundación... ¿qué patrón de diseño de concurrencia es más adecuado para que un hilo monitoree las condiciones y otro hilo active la alerta?
a)
Productor-Consumidor.
b)
Planificación Round Robin.
c)
Exclusión mutua.
d)
Espera ocupada.
59.
Los datos de las estaciones meteorológicas se almacenan y se utilizan para generar estadísticas... ¿cómo se podría minimizar su impacto en el rendimiento de los hilos de procesamiento?
a)
Utilizar un hilo dedicado (o pool de hilos) para las operaciones de escritura en la base de datos o almacenamiento.
b)
Hacer que los hilos de procesamiento esperen sincrónicamente a que cada dato se guarde.
c)
Implementar el almacenamiento de datos en el mismo hilo que realiza la lectura de la estación.
d)
Almacenar todos los datos en memoria RAM sin persistencia.
60.
Para el sistema de alertas de inundación, ¿qué es crucial considerar al diseñar la lógica de los hilos para evitar falsas alarmas o alarmas perdidas...?
a)
Asegurar la atomicidad de las lecturas de datos relevantes y la consistencia del estado del sistema antes de activar una alerta.
b)
Priorizar la velocidad sobre la consistencia de los datos.
c)
Permitir que los hilos de alerta lean datos directamente de las estaciones sin procesamiento previo.
d)
Utilizar una InterruptedException para forzar la actualización de datos.
61.
Si el sistema necesita generar un informe mensual consolidado de todas las estaciones... ¿Cómo se debería gestionar esta tarea para no impactar el rendimiento del monitoreo en tiempo real?
a)
Programar la generación del informe como una tarea asíncrona o en un hilo separado/pool de hilos dedicado.
b)
Ejecutar el informe en el hilo principal del sistema durante horas de baja actividad.
c)
Dividir el informe en 1000 pequeñas tareas, una por estación, ejecutadas por hilos individuales.
d)
Incrementar la prioridad de los hilos de monitoreo para que el informe no los retrase.
62.
En el contexto del monitoreo de 1000 estaciones, si la comunicación con las estaciones es a través de red y una de ellas falla o se desconecta temporalmente... ¿Cómo se debería manejar esto a nivel de hilo para evitar que todo el sistema se congele o falle?
a)
Utilizar timeouts para las operaciones de E/S y manejar las excepciones (IOException, SocketTimeoutException), quizás con reintentos limitados.
b)
Permitir que el hilo se bloquee indefinidamente, esperando la reconexión.
c)
Terminar el hilo asociado a la estación y reiniciar el sistema.
d)
Ignorar los errores de conexión y continuar procesando solo las estaciones activas.