Introducción Preguntas y respuestas de la entrevista Java sobre subprocesamiento múltiple

Antes de continuar con las preguntas de la entrevista de Java sobre Multithreading, analicemos algo sobre algunos hechos sobre Multithreading.

# 1 - ¿Entonces deberíamos saber primero cuál es el hilo?

Es la unidad más pequeña de procesamiento de un trabajo en particular que se llama un hilo. Es de naturaleza ligera y fácil de usar. Ahora nos viene a la mente que, por qué deberíamos necesitarlo, el subprocesamiento múltiple se utiliza para lograr la multitarea. La multitarea también se podría lograr de otra manera y se conoce como Multiprocesamiento.

Sin embargo, el subprocesamiento múltiple es más popular y es eficiente de usar sobre el multiprocesamiento porque los subprocesos tienen propiedades de que usa un área de memoria compartida, mientras que en el caso de multiproceso consume mucha memoria y otros recursos que no son eficientes.

Por lo tanto, el proceso de ejecución de varios subprocesos simultáneamente para realizar algún trabajo se denomina multiproceso.

Algunas ventajas de usar multihilo:

  • Los subprocesos funcionan de manera independiente, por lo que es independiente de otras operaciones en los sistemas y, por lo tanto, es posible realizar múltiples operaciones al mismo tiempo.
  • El consumo de tiempo es menor con el uso de subprocesos múltiples, ya que muchas operaciones se pueden realizar simultáneamente.
  • Los subprocesos son independientes como ya se discutió, por lo que se produce una excepción en un solo subproceso que no interferirá con las operaciones de otros subprocesos.
  • El costo de las comunicaciones entre dos hilos es bajo.

Podemos lograr la multitarea de las siguientes dos maneras:

  • Multitarea basada en procesos (multiprocesamiento)
  • Multitarea basada en hilos (Multithreading)

NOTA: Como estamos discutiendo el multihilo, nos centraremos en la multitarea basada en hilos.

Ciclo de vida de un hilo:

  • Nuevo
  • Ejecutable
  • Corriendo
  • No ejecutable (bloqueado)
  • Terminado

NOTA: Para su referencia y una mejor comprensión, lea cuidadosamente la imagen a continuación.

# 2 - ¿Cómo se crean los hilos?

Ahora, este es el más importante y el primer punto por el cual podemos crear el hilo. Hay dos formas de crear hilos que se analizan a continuación:

  • Al extender la clase Thread
  • Al implementar la interfaz Runnable

NOTA:

Cuando se creó un nuevo hilo, se realizan las siguientes tareas:

  1. En una nueva pila de llamadas, se creará un hilo.
  2. El hilo cambia su estado de Nuevo a Ejecutable.
  3. Cuando se inicia el subproceso, encuentra el método run () y luego se ejecuta.

EJEMPLO:

By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)

EJEMPLO:
By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)

NOTA: Tenga en cuenta la diferencia en los dos ejemplos anteriores. La principal diferencia en los dos ejemplos anteriores es que si no ampliamos Thread, intentamos crear Thread implementando la interfaz Runnable y clasificamos el método start () para iniciar Thread, entonces Tread no se creará en una nueva pila de llamadas ya que no se identificará como un hilo.

Entonces, para que se identifique como Thread, tenemos que pasar la instancia de la Clase donde hemos implementado la Interfaz Runnable como argumento para el constructor de la clase Thread y luego tenemos que llamar al método start ().

Programación en hilo:

Como todos saben, ese horario significa hacer un plan de una tarea en un momento determinado.

La programación de subprocesos es un mecanismo similar de programación de un subproceso particular que mantiene algunos protocolos. Hay dos formas diferentes en que la programación de subprocesos funciona en Java.

  • Programación preventiva
  • Cortando el tiempo.

Programación preventiva:

JMV decide la tarea de mayor prioridad e inicia la ejecución hasta que ingresa en los estados de espera o inactivo o cuando se crea una tarea de mayor prioridad.

Corte de tiempo:

JVM comienza a ejecutar un subproceso particular durante un período de tiempo específico y luego mueve el mismo subproceso al grupo y elige otro subproceso en función de la prioridad y otros factores para las ejecuciones. Este proceso continúa hasta que todo el hilo termina su proceso.

Ahora, si está buscando un trabajo relacionado con Java Multithreading, entonces debe prepararse para las Preguntas de la entrevista de Java 2018 sobre Multithreading. Es cierto que cada entrevista es diferente según los diferentes perfiles de trabajo. Aquí, hemos preparado las preguntas y respuestas importantes de la entrevista Java en Multithreading que lo ayudarán a tener éxito en su entrevista.

En este artículo de Preguntas de la entrevista de Java de 2018 sobre subprocesamiento múltiple, presentaremos las 10 preguntas de entrevista de Java más importantes y frecuentes sobre el subproceso múltiple Estas preguntas de la entrevista se dividen en dos partes:

Parte 1 - Preguntas de la entrevista Java sobre subprocesamiento múltiple (básico)

Esta primera parte cubre las preguntas y respuestas básicas de la entrevista Java en Multithreading.

Q1. ¿Diferenciar entre proceso y subproceso?

Responder:
Un proceso es un programa o aplicación, mientras que Thread es una tarea única que se ejecutará dentro de un proceso. El hilo es liviano, mientras que el proceso es pesado. El subproceso requiere menos, mientras que el proceso requiere más recursos, por lo que se denomina de naturaleza muy ponderada.

Q2 ¿Diferenciar entre el hilo de usuario y el hilo de demonio?

Responder:
Un subproceso creado en Java se denomina subproceso de usuario. Un hilo de demonio siempre se ejecuta en segundo plano y su ciclo de vida completo depende del hilo principal. Un subproceso de daemon que se ejecuta en segundo plano no impedirá que JVM lo finalice. El subproceso hijo creado a partir de un subproceso de daemon también será un subproceso de daemon.

Pasemos a las siguientes preguntas de la entrevista de Java sobre subprocesamiento múltiple.

Q3. ¿La forma diferente de crear un hilo en Java?

Responder:
Los hilos en Java se pueden crear de dos maneras:

  • Al extender la clase de hilo.
  • Mediante la implementación de la interfaz Runnable.

Q4. ¿Cuál es el ciclo de vida de Thread?

Responder:
Estas son las preguntas comunes de la entrevista Java sobre subprocesamiento múltiple formuladas en una entrevista. Los siguientes son el ciclo de vida de un hilo:

  • Nuevo
  • Runnable
  • Corriendo.
  • Obstruido.
  • Terminado.

Q5. ¿Qué sucede si llamamos al método run () de una clase Thread?

Responder:
Llamar directamente al método run () compilará y ejecutará el programa con éxito, pero el mismo programa no se tratará como Thread porque no se creará una nueva pila de llamadas y el programa comenzará su ejecución en la misma pila de llamadas donde se ejecuta el principal.

Para crear Thread que debería ejecutarse con una nueva pila de llamadas, uno tiene que usar el método start () de la clase Thread.

Parte 2 - Preguntas de la entrevista Java sobre subprocesamiento múltiple (avanzado)

Ahora echemos un vistazo a las preguntas y respuestas avanzadas de la entrevista Java sobre subprocesos múltiples.

Q6. ¿Podemos pausar la ejecución de un subproceso en un momento específico?

Responder:
Sí, esto se puede lograr en Java llamando al sleep () de la clase Thread. El método Sleep () también toma un argumento que indica el tiempo en milisegundos.

Q7. ¿Cómo podemos lograr la programación del hilo en Java?

Responder:
Sí, la programación de hilos en java es posible. Los subprocesos en Java se pueden programar de dos maneras, es decir, división de tiempo y programación preventiva.

Pasemos a las siguientes preguntas de la entrevista de Java sobre subprocesamiento múltiple.

Q8. ¿Se puede iniciar un hilo dos veces?

Responder:
No, un hilo no puede iniciarse dos veces. Si intentamos iniciar un hilo dos veces, arrojará "java.lang.IllegalThreadStateException".

Q9. ¿Qué es el gancho de apagado en Java?

Responder:
Esta es la pregunta de entrevista de Java más popular sobre Multithreading formulada en una entrevista. Un gancho de apagado es un mecanismo que se utiliza para limpiar recursos cuando la JVM se apaga de manera normal o abrupta.

Q10. ¿Qué es volátil?

Responder:
Volátil es una palabra clave en java y se puede usar con variables. Si una variable se declara como volátil, todos los subprocesos leerán el valor de la misma variable desde la memoria principal en lugar de desde la memoria caché, por lo que evita la lectura de errores cuando varios subprocesos usan la misma variable en sus operaciones.

Artículos recomendados

Esta ha sido una guía de la lista de preguntas y respuestas de la entrevista Java sobre subprocesos múltiples para que el candidato pueda tomar medidas enérgicas contra estas preguntas de la entrevista Java sobre subprocesos múltiples fácilmente. Aquí en esta publicación, hemos estudiado las principales preguntas de la entrevista de Java sobre subprocesamiento múltiple que a menudo se hacen en entrevistas. También puede consultar los siguientes artículos para obtener más información:

  1. Estructura de datos Preguntas de la entrevista Java
  2. Vaya preguntas de la entrevista de Java
  3. Preguntas de entrevista de subprocesos múltiples en Java
  4. Preguntas de la entrevista de prueba de Java