Estudo para certificação – Capítulo 09

Esse é a nona parte de uma série de posts que irei fazer.
Nesses posts, vou colocando um resumo ou talvez até mesmo trechos na íntegra do livro: Certificação Sun para Programador Java 6 da Kathy Sierra e Bert Bates.

Obs: Caro leitor, você não deve ter como base para uma certificação Java apenas a leituras desses meus resumos em meu blog. É de suma importância a leitura por completo do livro, bem como a realização de alguns simulados.

Capítulo 9 – Threads

1) Criando, instanciando e iniciando novas threads
– As threads podem ser criadas herdando da classe Thread e a sobrescrevendo o método public void run().
– Os objetos das threads também podem ser criados com uma chamada ao construtor de Thread que usa um objeto Runnable como argumento.
– Você pode chamar start() em um objeto Thread somente uma vez.
– É válido criar muitos objetos Thread usando o mesmo objeto Runnable como destino.

2) Transição entre os Estados das Threads
– Uma vez que uma nova thread for iniciada, ela sempre entrará no estado executável.
– Para uma máquina típica, de apenas um processador, só uma thread pode ser executado por vez, embora muitos possam estar no estado executável.
– Uma thread sendo executada pode entrar em um estado bloqueado/de espera por uma chamada wait(), sleep() ou join().

3) Sleep, Yield e Join
– A suspensão é usada para retardas a execução por um período de tempo e nenhum bloqueio será liberado quando um thread entrar em suspensão.
– O método setPriority() é usado em objetos Thread para às threads um nível de prioridade entre 1(baixo) e 10(alto), embora não sejam garantidas.
– O método yeld() pode fazer com que uma thread em execução seja interrompida se houver threads executáveis com a mesma prioridade.
– Quando uma thread chamar o método join() de outra thread, aquela que estiver sendo executada esperará até que a thread ao qual foi adicionada seja concluída.

5) Problemas de Acesso Simultâneo e Threads Sincronizados
– Os métodos synchronizes impedem que mais de uma thread acesse o código de um métidi crítico do objetos simultâneo.
– Embora só uma thread possa acessar o código sincronizado de uma instância específica, várias threads podem acessar o mesmo código não sincronizado do objeto.
– Quando um objeto entra em suspensão, seus bloqueios estarão indisponíveis para outras threads.

6) Comunicando-se com os Objetos Através da Espera(wait()) e Notificação(notify())
– O método wait() permite que uma thread diga:”Não há nada que eu possar fazer aqui, portanto, coloque-me em seu pool de espera e me avise quando acontecer algo que me interesse”.
– O método notify() é usado para enviar um sinal a somente uma das threads que estiverem aguardando no pool de espera desse mesmo objeto.
– O método notify() não pode especificar qual thread em espera deverá ser notificada.
– O método notifyAll() funciona da mesma maneira que notify(), só que envia o sinal para todas as threads que estiverem aguardando no objeto.
– Todos os 3 métodos devem ser chamados de dentro de um contexto sincronizado.

7) Threads em Impasse
– O impasse ocorre quando a execução da thread é interrompida porque o código está esperando que os bloqueios sejam removidos dos objetos.
– Em outras palavras, duas threads estão esperando a liberação do bloqueio um do outro, ou seja, os bloqueios nunca serão liberados!


Principal referência:

SIERRA, Kathy; BATES, Bert. Certificação Sun para Programador Java 6 – Guia de estudo – SCJP EXAME 310-065. Rio de Janeiro: Alta Books Editora, 2011.

Não deixem de verificar os próximos capítulos.
Valeu pessoal!

Anúncios

4 comentários sobre “Estudo para certificação – Capítulo 09

    • Gustavobit disse:

      Olá Alexandre.
      Em grande parte, a linguagem permanece no mesmo formato quando comparado com a versão do Java 1.6 e Java 8.

      Mas claro, para ter uma amplitude maior dos estudos e adquirir conhecimentos ainda mais específicos com o Java 8, recomendo os seguintes livros:
      Java 8 – Casa do Código e OCA – ORACLE CERTIFIED ASSOCIATE JAVA SE 8 PROGRAMMER I.

      Abraço

Obrigado pelo comentário.

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s