Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLaura do Amaral Castilhos Alterado mais de 9 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.