O código compila?
package teste;
public class Teste1 extends Thread {
public synchronized void run() {
System.out.println("Done");
}
public static void main(String[] args) {
Teste1 t = new Teste1();
t.start();
}
}
quem ja é certificado pode responder essas perguntas tudo ai? hehe
nao saco muito da parte de threads, pois cheguei apenas a fazer alguns testes simples com threads aqui, nunca me aprofundei mto.
mas acho que o run() nao pode ser synchronized, ou viajei?
pq aí ele seria executado do inicio ao fim, sem dar a vez pra outras threads(supondo que eu entendi corretamente a função do ‘synchronized’), ou será que viajei mais ainda?
Com certeza complia sim, sem problemas.
sim, compila sem problemas e exibe: Done
Também não vejo por que não compilar e rodar.
Qual é a resposta, afinal?
Compila e imprime Done.
A intenção foi apenas mostrar que apesar de sincronizado o método run() está sendo substituído o run() da classe Thread.
Robson
Não afeta pq colocar um sichronized não altera a assinatura do método, para tanto fazendo o mesmo exemplo só que assim:
public class Teste implements Runnable {
public synchronized void run() {
System.out.println("Done");
}
public static void main(String[] args) {
Teste t = new Teste();
Thread th = new Thread(t);
th.start();
}
}
Tb compila imprime Done