¿Qué es "ejecutable" en Java, en términos sencillos? Soy un estudiante de programación AP en la escuela secundaria, cuya tarea es investigar o buscar de los demás qué es "ejecutable" (recién estamos entrando en OOP y aún no hemos tocado temas).
¿Qué es "ejecutable" en Java, en términos sencillos? Soy un estudiante de programación AP en la escuela secundaria, cuya tarea es investigar o buscar de los demás qué es "ejecutable" (recién estamos entrando en OOP y aún no hemos tocado temas).
Respuestas:
Un Runnable es básicamente un tipo de clase (Runnable es una interfaz) que se puede poner en un hilo, describiendo lo que se supone que debe hacer el hilo.
La interfaz ejecutable requiere que la clase implemente el método de esta run()
manera:
public class MyRunnableTask implements Runnable {
public void run() {
// do stuff here
}
}
Y luego úsalo así:
Thread t = new Thread(new MyRunnableTask());
t.start();
Si no tuviera la Runnable
interfaz, la clase Thread, que es responsable de ejecutar sus cosas en el otro hilo, no tendría la promesa de encontrar un run()
método en su clase, por lo que podría obtener errores. Es por eso que necesita implementar la interfaz.
Tenga en cuenta que no necesita definir una clase como de costumbre, puede hacer todo eso en línea:
Thread t = new Thread(new Runnable() {
public void run() {
// stuff here
}
});
t.start();
Esto es similar a lo anterior, solo que no crea otra clase con nombre.
run
que finaliza el método, luego se cierra el hilo. Si desea que un hilo se repita una y otra vez, coloque un bucle dentro del run
método.
new Thread(() -> System.out.println("hello from other thread")).start();
Runnable
es una interfaz definida así:
interface Runnable {
public void run();
}
Para hacer una clase que lo use, simplemente defina la clase como (public) class MyRunnable implements Runnable {
Se puede usar sin siquiera hacer un nuevo hilo. Es básicamente su interfaz básica con un solo método, ejecutar, al que se puede llamar.
Si crea un nuevo hilo con ejecutable como parámetro, llamará al método de ejecución en un nuevo hilo.
También debe tenerse en cuenta que Runnable
los subprocesos se implementan , y se llama cuando se crea el nuevo subproceso (en el nuevo subproceso). La implementación predeterminada simplemente llama a cualquier Runnable que hayas entregado en el constructor, por lo que puedes hacerlo new Thread(someRunnable)
sin anular el run
método de Thread .
Thread
agrupación de subprocesos es difícil y si no implementa la agrupación de subprocesos, sufre el costo significativo de crear nuevos subprocesos todo el tiempo. Por el contrario, simplemente implementar Runnable
significa que puede usar fácilmente cosas como ThreadPoolExecutorService
o un grupo de subprocesos de terceros.