Diferencia clave: ejecutable vs subproceso
A un programa en ejecución se le conoce como proceso. El proceso se puede dividir en varios subprocesos. Por ejemplo, Microsoft Word es un proceso. Al mismo tiempo, comprueba los errores ortográficos y gramaticales. Eso es un subproceso. Estos subprocesos se conocen como subprocesos. Multithreading es el proceso de ejecutar múltiples hilos simultáneamente. Las aplicaciones con subprocesos se pueden construir usando diferentes lenguajes de programación. Runnable y Thread están asociados con la programación Java. Hay dos métodos en Java para crear un hilo implementando una interfaz Runnable o extendiendo la clase Thread. Al implementar Runnable, muchos subprocesos pueden compartir el mismo objeto de subproceso mientras que en la clase Extending Thread, cada subproceso tiene un objeto único asociado. Esa es la diferencia clave entre Runnable y Thread.
¿Qué es Runnable?
Un hilo pasa por algunos estados. Lo “nuevo” es el comienzo del ciclo de vida del hilo. Después de que el método start() llame a un nuevo subproceso, se vuelve ejecutable. Si el programador de subprocesos selecciona el subproceso, pasa al estado de ejecución. El subproceso está esperando el estado si ese subproceso está esperando que otro subproceso realice una tarea. Una vez que el subproceso completa el trabajo, pasa al estado de terminación.
Un subproceso se puede implementar utilizando la interfaz Runnable. Consulte el siguiente programa.
Figura 01: Programa Java para crear un hilo usando la interfaz Runnable
Según el programa anterior, la clase Runnable Demo implementa la interfaz Runnable. El método run() está dentro de la clase que implementa la interfaz Runnable. Es el punto de entrada para el hilo. La lógica está en el método run(). En el programa principal, se crea un hilo definiendo un objeto que se instancia desde la clase Runnable Demo. es t1. El método start() se llama usando t1.
Consulte el siguiente programa.
Figura 02: programa Java para crear un hilo para ejecutar un bucle, implementando la interfaz Runnable
Según el ejemplo anterior, la clase Runnable Demo implementa la interfaz Runnable. La lógica para ejecutar usando el hilo está escrita en el método run(). En el programa principal, se crea un hilo definiendo un objeto que se instancia desde la clase Runnable Demo.es t1. Luego, se llama al método start() usando t1.
¿Qué es Thread?
El otro método para crear un hilo es extendiendo la clase Thread. Consta de tres pasos. Primero es declarar la clase como una extensión de la clase Thread. Luego, se debe escribir el método run(). Tiene la secuencia de pasos que debe ejecutar el subproceso. Finalmente, se crea el objeto hilo y se llama al método start() para iniciar la ejecución del hilo. Consulte el siguiente programa.
Figura 03: programa Java que amplía la clase Thread
Según el programa anterior, la clase MyThread amplía la clase Thread. Anula el método de ejecución. El método run() contiene la lógica que ejecutará el subproceso. Es el punto de entrada al hilo. Luego se crea el objeto hilo. es hilo1. El hilo se inicia usando el método start(). Ejecutará una llamada al método run().
Un programa de ejemplo de dos clases que amplían la clase Thread es el siguiente.
Figura 04: programa Java con dos clases que amplían la clase Thread
Según el programa anterior, tanto la clase A como la B están extendiendo la clase Thread. Ambas clases tienen su implementación del método run(). El hilo principal es el que ejecuta el método main(). Antes de que muera el subproceso principal, crea e inicia subproceso1 y subproceso2. Cuando el subproceso principal llegó al final del método principal, tres subprocesos se ejecutan en paralelo. No hay un orden específico en el que los subprocesos dan salida. Una vez que se inicia el subproceso, es difícil decidir el orden en que se ejecutarán. Funcionan de forma independiente.
¿Cuáles son las similitudes entre Runnable y Thread?
Ambos se usan para crear un hilo en Java
¿Cuál es la diferencia entre Runnable y Thread?
Ejecutable vs Hilo |
|
Runnable es una interfaz en Java para crear un hilo que permite que muchos hilos compartan el mismo objeto de hilo. | El hilo es una clase en Java para crear un hilo donde cada hilo tiene un objeto único asociado. |
Memoria | |
En Runnable, varios subprocesos comparten el mismo objeto, por lo que requieren menos memoria. | En la clase Thread, cada hilo crea un objeto único, por lo que requiere más memoria. |
Ampliación de la capacidad | |
Después de implementar la interfaz Runnable, puede extender una clase. | Las herencias múltiples no son compatibles con Java. Después de extender la clase Thread, no puede extender ninguna otra clase. |
Mantenimiento del código | |
La interfaz ejecutable hace que el código sea más fácil de mantener. | En la clase Thread, el mantenimiento lleva mucho tiempo. |
Resumen: ejecutable frente a subproceso
Un proceso se divide en varios subprocesos para realizar varias tareas al mismo tiempo. Estos subprocesos se conocen como subprocesos. La creación de instancias de un subproceso se puede realizar implementando la interfaz Runnable o extendiendo la Clase de subproceso. Es fácil extender la clase Thread, pero no es una mejor práctica de Programación Orientada a Objetos. Al implementar Runnable, muchos subprocesos pueden compartir el mismo objeto de subproceso, mientras que al extender la clase Subproceso, cada subproceso tiene un objeto único asociado. Esa es la diferencia entre Runnable y Thread. En la clase Thread, la creación de varios objetos puede consumir más memoria.
Descargue el PDF de Runnable vs Thread
Puede descargar la versión en PDF de este artículo y utilizarlo sin conexión según la nota de la cita. Descargue la versión en PDF aquí Diferencia entre Runnable y Thread