prof. paulo fernando da silva sistemas concorrentes capítulo 02 – threads

Post on 22-Apr-2015

108 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Prof. Paulo Fernando da Silva

Sistemas Concorrentes

Capítulo 02 – Threads

Prof. Paulo Fernando da Silva

Roteiro

• Condição de Concorrência

• Sincronização

• Locks

• Semáforos

Prof. Paulo Fernando da Silva

Exemplo da Conta Bancária

Prof. Paulo Fernando da Silva

Thread de Saque

Prof. Paulo Fernando da Silva

Thread de Depósito

Prof. Paulo Fernando da Silva

Condição de Concorrência

Prof. Paulo Fernando da Silva

Controle de Concorrência

Prof. Paulo Fernando da Silva

Monitores

Prof. Paulo Fernando da Silva

Exemplo Conta Bancária

• Implemente a solução de monitores no exemplo da conta bancária

Prof. Paulo Fernando da Silva

Condições de Acesso

Prof. Paulo Fernando da Silva

Atividade 2.1

Implemente a classe lista cujos métodos put e get são sincronizados.

Crie uma thread para produtor e outra para consumidor.

O produtor começa a produzir se houver menos de 10 elementos na fila.

Quando a fila tiver 20 elementos o produtor pára.

O consumidor pára somente quando a fila estiver vazia.

A fila recebe Strings() com data "new Date().toString()".

Produtor e consumidor devem executar 1000 interações.

Prof. Paulo Fernando da Silva

Locks

Prof. Paulo Fernando da Silva

Locks

Prof. Paulo Fernando da Silva

Conta Bancária com Locks

Prof. Paulo Fernando da Silva

Lock RW

Prof. Paulo Fernando da Silva

Conta Banco c\ Lock RW

Prof. Paulo Fernando da Silva

Condições de Acesso c\ Lock

Prof. Paulo Fernando da Silva

Condições de Acesso c\ Lock

Prof. Paulo Fernando da Silva

Atividade 2.2

Implemente uma lista, com 2 locks condicionais: canRead e canWrite.

O produtor para de produzir quando o buffer estiver cheio.

O consumidor para de consumir quando o buffer estiver vazio.

O produtor e o consumidor devem dormir por tempos randômicos.

O consumidor e o produtor interagem 10 vezes com a lista.

Prof. Paulo Fernando da Silva

Semáforos

Prof. Paulo Fernando da Silva

Exemplo Estacionamento

Prof. Paulo Fernando da Silva

Atividade 2.3

5 filósofos, que repartem a sua vida entre 2 estados:

– Pensar

– Comer

Para comer, sentam-se a uma mesa com 5 garfos,

– Pegam no garfo esquerdo, se possível

– Pegam no garfo direito, se possível

– Comem o esparguete

– Pousam os garfos e vão pensar mais um bocado

Prof. Paulo Fernando da Silva

Projeto de Thread

• Desenvolva seu projeto aplicando os conceitos de threads

• Requisitos:– Sync, wait, notify– Lock, await, signal– Semáforo– Conhecimento– Complexidade– Plus

top related