Professional Documents
Culture Documents
Janeiro – IM/DCC
nascimento
start
pronta
yield termina E/S
notify
notifyAll
em inicia E/S
wait tempo execução
expira sleep end
1
Criando threads em Java
O start() faz com que a Java Virtual Machine invoque o método run da Thread .
2
Criando threads em Java
implementando a interface Runnable
3
Utilizando threads em Java
4
Utilizando threads em Java
5
Sincronizando threads em Java
6
Sincronizando threads em Java
Adquire lock
Espera para adquirir o lock
Método synchronized
Adquire lock
Libera o lock
Método synchronized
Libera o lock
7
Sincronizando threads em Java
synchonized Statements
Permite que a sincronização seja feita apenas em uma
porção do código.
Como a sincronização afeta a performance, este
processo é mais eficaz.
Com synchronized statements somente fica locked o
absolutamente necessário.
Sintaxe:
synchonized (objeto que será locked) {
statements
}
8
Sincronizando threads em Java
Formas de uso:
wait()
synchronized void facaQuandoCondicao() {
while (!condicao) {
try{
wait();
}
catch(InterruptedException e) {}
}
instruções quando a condição for verdadeira
}
9
Sincronizando threads em Java
Formas de uso:
notify(); notifyAll:
synchronized void trocaCondicao() {
troca os valores usados para o teste da condição
notifyAll(); // ou notify()
}
10
Bibliografia
11