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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas Operacionais Sincronismo e Comunicação entre processos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
CONTROLE DE CONCORRÊNCIA
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Monitores.
Threads no Multiplus/Mulplix Adriano Cruz ©2003 NCE e IM/UFRJ
Conceitos de Programação Paralela - 2
Capítulo 7: Deadlocks.
Sistemas Operacionais II
Controle de Concorrência em Sistemas Distribuídos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Walfredo Cirne Threads Walfredo Cirne
Sistemas Distribuídos
A Distributed Object-Oriented Framework for Dependable Multiparty Interactions A.F.Zorzo, R.J.Stroud Leonardo Viccari.
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Sincronização de Processos (6) - Troca de Mensagens -
Sincronização e Comunicação entre Processos
Segurança em Aplicações 5. Melhores Práticas de Programação
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Threads sem Sincronização
Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas;
Especialização em Segurança da Informação Segurança em Aplicações 5. Melhores Práticas de Programação Márcio Aurélio Ribeiro Moreira
Sincronização de Threads
Concorrência em Java Threads em Java.
Controle de Concorrência
Monitores.
Locks.
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
Unidade 3 Controle de Concorrência
Concorrência em Java Threads em Java.
CUDA vs OpenCL Introdução.
Carlos Oberdan Rolim Ciência da Computação
Sistemas Distribuídos
Concorrência STRD.
Controle de concorrência
Capítulo 7: Deadlocks.
Processos.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
Semáforos J2SE 5.0 Estudo da API e comparação com definição clássica Gustavo Frainer Rômulo Rosinha
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Programação com Threads
Processos.
Transações Concorrentes
Introdução às Java Threads
Sistemas operacionais
Sistemas Concorrentes Capítulo 02 – Threads
Sistemas Distribuídos Aula 05 – Programação Multithread/Paralela
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.
Video Capítulo 7: Sincronização de Processos. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Cenário n O problema.
Python Threads e Socket
Exclusão Mútua com Espera Ociosa (1)
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Capítulo 8 Threads.
Programação Concorrente
Sistemas Operacionais
Comunicação Interprocesso Condições de Disputa (corrida)
Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
ProgramaçãoConcorrente Glêdson Elias
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

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

2 Programação Com Objetos Distribuídos 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 Programação Com Objetos Distribuídos 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 Programação Com Objetos Distribuídos 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 Programação Com Objetos Distribuídos 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 Programação Com Objetos Distribuídos 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 Programação Com Objetos Distribuídos Métodos e Classes para Sincronização no JDK 5.0 Bibliografia Concurrent Programming with J2SE 5.0. Disponível por WWW em (abr. 2005) J2SE 5.0 in a Nutshell. Disponível por WWW em (abr. 2005). JDK 5.0 Documentation. Disponível por WWW em (abr. 2005).