¿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 Runnableinterfaz, 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.
runque 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 runmé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 Runnablelos 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 runmétodo de Thread .
Threadagrupació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 Runnablesignifica que puede usar fácilmente cosas como ThreadPoolExecutorServiceo un grupo de subprocesos de terceros.