0% acharam este documento útil (0 voto)
5 visualizações5 páginas

Threads em Java: Sincronização e Notificação

O documento apresenta uma introdução sobre threads em Java, destacando a importância da concorrência e paralelismo. Aborda a sincronização com a palavra-chave synchronized, o método wait() para liberação de locks e a notificação de threads com notify() e notifyAll(). O fluxo de interação entre threads é ilustrado, mostrando como elas aguardam e são notificadas para retomar a execução.

Enviado por

Vinicius Ito
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações5 páginas

Threads em Java: Sincronização e Notificação

O documento apresenta uma introdução sobre threads em Java, destacando a importância da concorrência e paralelismo. Aborda a sincronização com a palavra-chave synchronized, o método wait() para liberação de locks e a notificação de threads com notify() e notifyAll(). O fluxo de interação entre threads é ilustrado, mostrando como elas aguardam e são notificadas para retomar a execução.

Enviado por

Vinicius Ito
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Threads em Java:

Apresentação introdutória sobre threads em Java! Exploraremos os


benefícios de concorrência e paralelismo. Abordaremos a sincronização e a
comunicação entre threads.

por Ricardo Stegh Camati


Sincronização com synchronized
A palavra-chave synchronized garante exclusão mútua. Métodos e blocos de código podem ser sincronizados. Apenas uma thread
pode acessar o recurso por vez.

Exclusão Mútua Métodos e Blocos


O synchronized garante que apenas uma thread acesse um Pode ser aplicado a métodos inteiros ou a blocos específicos de
recurso compartilhado por vez, evitando condições de corrida. código dentro de um método para controlar o acesso.
O que é o método wait?
O método wait() libera o lock e suspende a thread. A thread aguarda até ser notificada por notify() ou notifyAll().

1 Liberação do Lock 2 Suspensão da Thread 3 Notificação


wait() libera o lock do objeto, A thread entra em estado de A thread é acordada por
permitindo que outras threads espera até que outra thread a notify() ou notifyAll().
o acessem. notifique.
Notify e NotifyAll
notify() acorda uma thread que está em wait(). notifyAll() acorda todas as
threads em espera. A thread acordada compete pelo lock.

notify() notifyAll()
Acorda uma única thread em Acorda todas as threads em
espera. espera.

Competição
Threads competem pelo lock após serem acordadas.
Fluxo de Wait/Notify
Um diagrama de sequência ilustra a interação entre threads usando wait(), notify() e notifyAll(). Threads aguardando, sendo
notificadas e retomando a execução.

1 Thread A aguarda

2 Thread B notifica

3 Thread A acorda

Você também pode gostar