Interfaz ejecutable en Java: implementación, pasos y errores

Publicado: 2021-05-02

Tabla de contenido

Introducción

Una interfaz ejecutable en Java es una interfaz cuyas instancias pueden ejecutarse como un subproceso. Mientras trabaja con Threads, la interfaz ejecutable actúa como un elemento central del lenguaje de programación Java. Las clases Java creadas para ejecutar Threads deben implementar esta interfaz. Este artículo le brindará una comprensión profunda de la interfaz ejecutable en Java y el proceso de implementación.

¿Qué es la interfaz ejecutable en Java?

Una interfaz ejecutable es una interfaz que contiene un único método. El programa Java define este único método en el paquete java.lang y lo llama cuando se ejecuta la clase de subproceso. Proporciona una plantilla para objetos que una clase puede implementar usando Threads. Puede implementar la interfaz ejecutable en Java de una de las siguientes maneras:

  • Usando hilo de subclase
  • Anulando el método run()

Java no permite múltiples herencias en el programa. Puede extender solo una clase y, cuando extiende una clase de subproceso, consume más memoria, tiempo de cálculo y otros recursos. Por lo tanto, agrega la sobrecarga de usar métodos adicionales. De las dos opciones anteriores, es mejor usar una interfaz ejecutable para crear un hilo. Para hacerlo, debe proporcionar la implementación del método run().

Pasos para crear un hilo usando la interfaz ejecutable en Java

Realice los siguientes pasos para crear un subproceso utilizando la interfaz ejecutable en Java .

  1. Cree una clase de hilo que implementará la interfaz ejecutable.
  2. En la clase de subprocesos, escriba una función para anular el método run().
  3. Cree una instancia de la clase Thread.
  4. La instancia de subproceso tiene un constructor que acepta el objeto ejecutable. Pase este objeto como parámetro a la instancia del hilo.
  5. Finalmente, llame al método de inicio de la instancia del hilo.

Lea también: Ideas y temas de proyectos Java

Implementación de la interfaz ejecutable en Java

La implementación del método run() es la forma más sencilla de crear un hilo nuevo. Actúa como un punto de partida para crear un nuevo Thread. La implementación de la interfaz ejecutable usa el código dentro del método run() y lo ejecuta en un subproceso concurrente. Puede invocar la clase, crear nuevas variables o llamar a la acción en el método run() para implementar la interfaz ejecutable en Java . El programa se asegura de que el subproceso esté inactivo hasta que imprima la declaración de devolución en el código.

clase pública TestRunnableInterface {

public static void main(String[] args) {

System.out.println(“Del método primario(): ” + Thread.currentThread().getName());

System.out.println(“Implementación de la interfaz ejecutable en Java ”);

Instancia ejecutable = new Runnable() {@Override

ejecución de vacío público () {

System.out.println(“Del método run(): ” + Thread.currentThread().getName());

}

};

System.out.println(“Crear una nueva instancia del objeto hilo.”);

Prueba de subproceso = nuevo subproceso (instancia);

System.out.println(“¡Ejecutando el hilo!”);

prueba.start();

}

}

Producción

Desde el método primario (): principal

Implementando la interfaz ejecutable en Java

Cree una nueva instancia del objeto hilo.

Del método run(): Thread-0

Errores encontrados al implementar la interfaz ejecutable en Java

El método run() arroja un error de excepción en tiempo de ejecución cuando el programa se interrumpe debido a un error de sintaxis o de código. Si una máquina virtual Java no detecta los errores, el subproceso creado maneja la excepción que la JVM no detectó. El controlador de excepciones imprime la excepción y detiene el programa.

importar java.io.FileNotFoundException;

clase pública TestRunnableInterface {

public static void main(String[] args) {

System.out.println(“El hilo principal es: ” + Thread.currentThread().getName());

Prueba de subproceso = nuevo subproceso (nueva TestRunnableInterface (). Nueva instancia de demostración ());

prueba.start();

}

clase privada DemoInstance implementa Runnable {

ejecución de vacío público () {

System.out.println(Thread.currentThread().getName() + “, invocando el método run()!”);

tratar {

lanza una nueva excepción FileNotFoundException();

}

catch (demostración de FileNotFoundException) {

System.out.println(“¡Se detectó un error!”);

demostración.printStackTrace();

}

}

}

}

Producción

El hilo principal es: main

Thread-0, invocando el método run()!

¡Atrapé un error!

java.io.FileNotFoundException

en TestRunnableInterface$DemoInstance.run(Ejemplo.java:21)

en java.lang.Thread.run(Thread.java:748)

La clase TestRunnableInterface del programa anterior no lanza la excepción FileNotFoundException. La máquina virtual Java se ocupa de las excepciones que debería haber manejado la clase TestRunnableInstance.

Caso de uso de la interfaz ejecutable en Java

La interfaz ejecutable en Java se usa en un escenario de red donde el servidor recibe múltiples solicitudes de conexión de los clientes. La interfaz ejecutable en Java lo maneja de manera rápida y eficiente al realizar una programación de subprocesos múltiples.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

En pocas palabras, una interfaz ejecutable en Java siempre es una mejor opción en comparación con el subproceso de subclase cuando se trata de crear subprocesos en Java. El código utilizado en el artículo es solo para fines explicativos. Puede modificar las declaraciones dadas en los ejemplos según sus requisitos. En este artículo, aprendimos sobre la interfaz ejecutable en Java y cómo puede crear un hilo implementando la interfaz ejecutable en Java .

Puede probar el código para fortalecer el conocimiento de su constructor de Java . Si desea obtener una comprensión profunda de Java, consulte el curso UpGrad Executive PG Program en Full Stack Development . Este curso está diseñado para profesionales que trabajan y ofrece una formación rigurosa y asistencia laboral con las mejores empresas.

¿Qué es multiproceso en Java?

Multithreading es un concepto en Java en el que las tareas se ejecutan simultáneamente. Permite que un programa realice muchas tareas diferentes simultáneamente en lugar de esperar a que se complete una sola tarea. Es uno de los temas más populares de Java y los desarrolladores de Java. Multithreading es una de las características más poderosas de Java. Utiliza la CPU de manera efectiva al ejecutar varios subprocesos. Java tiene una construcción especial llamada hilo. Un subproceso es básicamente un proceso de software que puede ejecutar una secuencia arbitraria de instrucciones de código de bytes de Java. La ejecución de cada hilo es independiente de otros hilos. Los desarrolladores pueden crear un nuevo subproceso en cualquier momento y la JVM se encargará de la ejecución de este subproceso. Esto ayuda a desarrollar una aplicación altamente escalable y receptiva.

¿Qué es la interfaz ejecutable en Java?

La interfaz ejecutable se utiliza para escribir aplicaciones que pueden ejecutarse en un subproceso separado. Cualquier clase que implemente la interfaz ejecutable se denomina subproceso. El intérprete ejecuta el código del subproceso después de que se inicia el subproceso. Puede implementar la interfaz ejecutable y crear su propio programa multiproceso. Hay dos formas de implementar esta interfaz. La primera es usando la subclase thread. El otro es anulando el método run().

¿Cómo funciona realmente el subprocesamiento múltiple?