Diferencia clave: ejecutable frente a subproceso
Un programa en ejecución se conoce como proceso. El proceso se puede dividir en varios subprocesos. Por ejemplo, Microsoft Word es un proceso. Al mismo tiempo, comprueba si hay errores ortográficos y gramaticales. Eso es un subproceso. Estos subprocesos se conocen como subprocesos. El subproceso múltiple es el proceso de ejecutar varios subprocesos simultáneamente. Las aplicaciones con subprocesos se pueden construir utilizando 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.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué es Runnable
3. Qué es Thread
4. Similitudes entre Runnable y Thread
5. Comparación lado a lado: Runnable vs Thread en forma tabular
6. Resumen
¿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 () llama a un nuevo hilo, se vuelve ejecutable. Si el programador de subprocesos selecciona el subproceso, pasa al estado de ejecución. El hilo está esperando el estado si ese hilo está esperando que otro hilo realice una tarea. Una vez que el hilo completa el trabajo, pasa al estado de terminación.
Un hilo se puede implementar usando la interfaz Runnable. Consulte el programa a continuación.
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 del hilo. La lógica está en el método run (). En el programa principal, se crea un hilo definiendo un objeto que se instancia de la clase Runnable Demo. Es t1. El método start () se llama usando t1.
Consulte el programa a continuación.
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 que la clase extiende la clase Thread. Luego, se debe escribir el método run (). Tiene la secuencia de pasos que debe ejecutar el hilo. Finalmente, se crea el objeto hilo y se llama al método start () para iniciar la ejecución del hilo. Consulte el programa a continuación.
Figura 03: Programa Java que amplía la clase Thread
Según el programa anterior, la clase MyThread extiende la clase Thread. Anula el método de ejecución. El método run () contiene la lógica que debe ejecutar el hilo. Es el punto de entrada al hilo. Entonces se crea el objeto hilo. Es thread1. 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 ampliando 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 el hilo principal muera, crea e inicia thread1 y thread2. Cuando el subproceso principal llegó al final del método principal, tres subprocesos se están ejecutando en paralelo. No existe un orden específico en el que los hilos dan salida. Una vez que se inicia el hilo, es difícil decidir el orden en que se ejecutarán. Corren de forma independiente.
¿Cuáles son las similitudes entre Runnable y Thread?
Ambos están usando para crear un hilo en Java
¿Cuál es la diferencia entre Runnable e Thread?
Diferencia del medio del artículo antes de la mesa
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 capacidad | |
Después de implementar la interfaz Runnable, puede extender una clase. | Java no admite varias herencias. Después de extender la clase Thread, no puede extender ninguna otra clase. |
Mantenibilidad 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 múltiples subprocesos para realizar múltiples tareas al mismo tiempo. Estos subprocesos se conocen como subprocesos. Se puede crear una instancia de un hilo implementando la interfaz Runnable o extendiendo la clase de hilo. 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 de 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.
Descarga el PDF de Runnable vs Thread
Puede descargar la versión PDF de este artículo y utilizarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí Diferencia entre Runnable e Thread