O que é "executável" em Java, em termos gerais? Eu sou um estudante de programação AP no colégio, cuja tarefa é fazer pesquisa ou buscar de outros o que é "executável" (estamos apenas entrando em OOP e não tocamos nos tópicos ainda).
O que é "executável" em Java, em termos gerais? Eu sou um estudante de programação AP no colégio, cuja tarefa é fazer pesquisa ou buscar de outros o que é "executável" (estamos apenas entrando em OOP e não tocamos nos tópicos ainda).
Respostas:
Um Runnable é basicamente um tipo de classe (Runnable é uma Interface) que pode ser colocada em um thread, descrevendo o que o thread deve fazer.
A Interface Executável requer que a classe implemente o método da seguinte run()
maneira:
public class MyRunnableTask implements Runnable {
public void run() {
// do stuff here
}
}
E então use-o assim:
Thread t = new Thread(new MyRunnableTask());
t.start();
Se você não tivesse a Runnable
interface, a classe Thread, que é responsável por executar suas coisas na outra thread, não teria a promessa de encontrar um run()
método em sua classe, então você poderia obter erros. É por isso que você precisa implementar a interface.
Observe que você não precisa definir uma classe como de costume, você pode fazer tudo isso inline:
Thread t = new Thread(new Runnable() {
public void run() {
// stuff here
}
});
t.start();
Isso é semelhante ao anterior, só que você não cria outra classe nomeada.
run
método seja concluído e, em seguida, o Thread é fechado. Se você quiser que um thread seja executado repetidamente, coloque um loop dentro do run
método.
new Thread(() -> System.out.println("hello from other thread")).start();
Runnable
é uma interface definida como:
interface Runnable {
public void run();
}
Para fazer uma classe que o usa, basta definir a classe como (public) class MyRunnable implements Runnable {
Ele pode ser usado mesmo sem fazer um novo Thread. É basicamente sua interface básica com um único método, run, que pode ser chamado.
Se você criar um novo Thread com runnable como parâmetro, ele chamará o método run em um novo Thread.
Deve-se notar também que Threads implementam Runnable
, e isso é chamado quando o novo Thread é feito (no novo thread). A implementação padrão apenas chama qualquer Runnable que você entregou no construtor, e é por isso que você pode simplesmente fazer new Thread(someRunnable)
sem substituir o run
método de Thread .
Thread
pool de threads é difícil e se você não implementar o pool de threads, você terá um custo significativo de criar novas threads o tempo todo. Por outro lado, apenas implementar Runnable
significa que você pode usar facilmente coisas como ThreadPoolExecutorService
um pool de threads de terceiros.