A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Métodos e Classes para Sincronização no JDK 5.0 Vitor Hugo Becker

Apresentações semelhantes


Apresentação em tema: "Métodos e Classes para Sincronização no JDK 5.0 Vitor Hugo Becker"— Transcrição da apresentação:

1 Métodos e Classes para Sincronização no JDK 5.0 Vitor Hugo Becker (vhbecker@inf.ufrgs.br)

2 2 Programação Com Objetos Distribuídos 2005 - Métodos e Classes para Sincronização no JDK 5.0 Os Mecanismos de Sincronização do JDK 5.0 Sincronizadores  Ferramentas para sincronização em geral: Semaphores – Semáforos que permitem exclusão mútua; CyclicBarrier – Barreiras; CountDownLatch – Travas decrescentes; Exchanger – Trocadores. Locks  Pode ser mais eficaz que syncronized, pois tem suporte a timeout;  Podemos definir múltiplas variáveis de condição para um lock;  Pacote java.util.concurrent.locks

3 3 Programação Com Objetos Distribuídos 2005 - Métodos e Classes para Sincronização no JDK 5.0 CyclicBarrier  Permite definir uma barreira dentro do código para fins de sincronização. Exige que todas as threads atinjam a barreira antes de prosseguirem executando; É cíclica, podendo ser reusada; CountDownLatch  Tranca que começa com um número X e é decrementada a cada execução, sendo liberada apenas ao atingir valor igual a 0. Contador não reseta automaticamente; Threads que invocam wait() com contador zerado são liberadas; Os Mecanismos de Sincronização do JDK 5.0

4 4 Programação Com Objetos Distribuídos 2005 - Métodos e Classes para Sincronização no JDK 5.0 Exchanger  Realizam troca de dados entre threads de maneira atômica e segura. É chamado utilizando como parâmetro o objeto a ser trocado com outra thread; Caso haja outra thread esperando, o método irá retornar o objeto que a outra thread passou como parâmetro; Caso não hajam threads esperando, o método espera por uma até que consiga realizar a troca; Os Mecanismos de Sincronização do JDK 5.0

5 5 Programação Com Objetos Distribuídos 2005 - Métodos e Classes para Sincronização no JDK 5.0 Lock  Permite exclusão mútua para múltiplas threads, substituindo o syncronized. Regiões críticas menores, executando mais rapidamente o código; Deve ser usado com bloco try... Finally para evitar inconsistências; Podem ser utilizados mais de um tipo de óbjeto para lock, com características específicas; Permite chain lock: adquire A, depois B, libera A, adquire C,... [Alan- Cristiano] Os Mecanismos de Sincronização do JDK 5.0

6 6 Programação Com Objetos Distribuídos 2005 - Métodos e Classes para Sincronização no JDK 5.0 ReentrantLock  Pode utilizar fairness usando fila FIFO. Garante fairness mas perde muito em desempenho;  Define os métodos isLocked e getLockQueueLength. ReadWriteLock  Garante que diversas threads acessem um determinado objeto somente para leitura e somente uma para escrita. Aumento no desempenho em leitores-descritores. Os Mecanismos de Sincronização do JDK 5.0

7 7 Programação Com Objetos Distribuídos 2005 - Métodos e Classes para Sincronização no JDK 5.0 Bibliografia Concurrent Programming with J2SE 5.0. Disponível por WWW em http://java.sun.com/developer/technicalArticles/J2SE/concurrency/, 2005. (abr. 2005) http://java.sun.com/developer/technicalArticles/J2SE/concurrency/ J2SE 5.0 in a Nutshell. Disponível por WWW em http://java.sun.com/developer/technicalArticles/releases/j2se15/, 2005. (abr. 2005). http://java.sun.com/developer/technicalArticles/releases/j2se15/ JDK 5.0 Documentation. Disponível por WWW em http://java.sun.com/j2se/1.5.0/docs/index.html, 2005. (abr. 2005). http://java.sun.com/j2se/1.5.0/docs/index.html


Carregar ppt "Métodos e Classes para Sincronização no JDK 5.0 Vitor Hugo Becker"

Apresentações semelhantes


Anúncios Google