74 Curso de Java
Threads:
deadlock
Thread 1 Thread 2
objeto 1 objeto 2
bloqueia bloqueia
quer usar
Deadlock
public static void main(String[] args) {
final String recurso1 = "recurso1";
final String recurso2 = "recurso2";
Thread t1 = new Thread() {
public void run() {
synchronized (recurso1) {
System.out.println("Thread 1: bloqueou recurso 1");
try { Thread.sleep(100);} catch (Exception e) {}
System.out.println("Tentando acessar recurso 2");
synchronized (recurso2) {
System.out.println("Thread 1: bloqueou recurso 2");
}
}
}
};
Thread t2 = new Thread() {
public void run() {
synchronized (recurso2) {
System.out.println("Thread 2: bloqueou recurso 2");
try { Thread.sleep(100);} catch (Exception e) {}
System.out.println("Tentando acessar recurso 1");
synchronized (recurso1) {
System.out.println("Thread 2: bloqueou recurso 1");
}
}
}
};
t1.start();
t2.start();
}
Lição
de casa
• Crie um semáforo (sinal de trânsito)
usandoThreads. O semáforo deve
ficar verde por x segundos, depois
brevemente amarelo seguido de y
segundos na cor vermelha.
https://github.com/loiane/curso-java-basico
Código Fonte:
Não conhece Git/Github?
http://www.loiane.com/2013/11/
screencast-git-e-github-para-iniciantes
http://loiane.training
Fórum para dúvidas + certificado do curso.
Cadastro em:
Obrigada!
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

[Curso Java Basico] Aula 74: Threads: deadlocks