Che cosa è "eseguibile" in Java, in parole povere? Sono uno studente di programmazione AP al liceo, il cui compito è fare ricerche, o cercare da altri cosa sia "eseguibile" (stiamo solo entrando in OOP e non abbiamo ancora toccato le discussioni).
Che cosa è "eseguibile" in Java, in parole povere? Sono uno studente di programmazione AP al liceo, il cui compito è fare ricerche, o cercare da altri cosa sia "eseguibile" (stiamo solo entrando in OOP e non abbiamo ancora toccato le discussioni).
Risposte:
Un Runnable è fondamentalmente un tipo di classe (Runnable è un'interfaccia) che può essere inserita in un thread, descrivendo ciò che il thread dovrebbe fare.
L' interfaccia eseguibile richiede alla classe di implementare il metodo in questo run()
modo:
public class MyRunnableTask implements Runnable {
public void run() {
// do stuff here
}
}
E poi usalo in questo modo:
Thread t = new Thread(new MyRunnableTask());
t.start();
Se non avessi l' Runnable
interfaccia, la classe Thread, che è responsabile di eseguire le tue cose nell'altro thread, non avrebbe la promessa di trovare un run()
metodo nella tua classe, quindi potresti ottenere errori. Ecco perché è necessario implementare l'interfaccia.
Nota che non è necessario definire una classe come al solito, puoi fare tutto ciò in linea:
Thread t = new Thread(new Runnable() {
public void run() {
// stuff here
}
});
t.start();
Questo è simile al precedente, solo che non crei un'altra classe con nome.
run
metodo, quindi il thread viene chiuso. Se vuoi che un thread venga eseguito più e più volte, inserisci un ciclo all'interno del run
metodo.
new Thread(() -> System.out.println("hello from other thread")).start();
Runnable
è un'interfaccia così definita:
interface Runnable {
public void run();
}
Per creare una classe che la utilizzi, è sufficiente definire la classe come (public) class MyRunnable implements Runnable {
Può essere utilizzato senza nemmeno creare un nuovo filo. È fondamentalmente la tua interfaccia di base con un unico metodo, run, che può essere chiamato.
Se crei un nuovo Thread con runnable come parametro, chiamerà il metodo run in un nuovo Thread.
Va anche notato che i thread implementano Runnable
e che viene chiamato quando viene creato il nuovo thread (nel nuovo thread). L'implementazione predefinita chiama semplicemente qualsiasi Runnable che hai consegnato al costruttore, motivo per cui puoi fare a new Thread(someRunnable)
meno di sovrascrivere il run
metodo di Thread .
Thread
pool di thread è difficile e se non si implementa il pool di thread, si consuma il costo significativo della creazione di nuovi thread tutto il tempo. Al contrario, la semplice implementazione Runnable
significa che puoi facilmente usare cose come ThreadPoolExecutorService
o un pool di thread di terze parti.