Metodologia e Linguagem de
Programação
Prof.º Thyago Maia
2015.1
Objetivos
Aula 14
• Apresentar o conceito de programação
concorrente e o uso da classe Thread;
• Fazer com que o aluno cri...
Threads
Threads
 Tal classe Java permite que métodos sejam
executados em paralelo;
 Programação concorrente;
 Threads estão pre...
Exemplo de Uso
Threads
 Vamos supor que desejamos criar duas
classes, Positivo e Negativo;
 Positivo exibirá, a partir do método mostra...
Threads
 Vamos supor que desejamos criar duas
classes, Positivo e Negativo;
7
Threads
 Como fazer com que os métodos mostrar
possam ser executados em paralelo?
 Classes com métodos concorrentes deve...
Threads
9
Threads
 Como executar paralelamente os métodos
run das classes Positivo e Negativo?
 Para os testes, vamos criar a clas...
Threads
11
O método sleep()
O método sleep()
 A classe Thread possui a implementação do
método estático sleep(), que faz com que
uma thread “durma” (...
O método sleep()
 Ex.: Fazer com que o método run da classe
Positivo “durma” por 3 segundos a cada
impressão de um número...
O método sleep()
15
Escalonador e Troca de
Contexto
Escalonador e Troca de Contexto
 Ainda analisando o exemplo anterior, qual
método run será executado primeiro?
 Não pode...
Escalonador e Troca de Contexto
 O escalonador de threads (scheduler) é
responsável por...
 Escolher qual a próxima thre...
Explore o assunto!
Explore o assunto!
• Referências
– CAELUM. Java e Orientação a Objetos. [Internet].
[citado em 2015 Mar 18]. Disponível em...
Próximos SlideShares
Carregando em…5
×

Metodologia e Linguagem de Programação - 2015.1 - Aula 14

280 visualizações

Publicada em

Metodologia e Linguagem de Programação - 2015.1 - Aula 14

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
280
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Metodologia e Linguagem de Programação - 2015.1 - Aula 14

  1. 1. Metodologia e Linguagem de Programação Prof.º Thyago Maia 2015.1
  2. 2. Objetivos Aula 14 • Apresentar o conceito de programação concorrente e o uso da classe Thread; • Fazer com que o aluno crie suas primeiras Threads; 2
  3. 3. Threads
  4. 4. Threads  Tal classe Java permite que métodos sejam executados em paralelo;  Programação concorrente;  Threads estão presentes em boa parte dos processamentos realizados pelo computador;  Executar uma varredura por vírus enquanto executa um editor de texto;  Exibir uma barra de progresso enquanto carrega um arquivo;  Entre outros; 4
  5. 5. Exemplo de Uso
  6. 6. Threads  Vamos supor que desejamos criar duas classes, Positivo e Negativo;  Positivo exibirá, a partir do método mostrar, os números entre 0 e 100;  Negativo exibirá, a partir do método mostrar, os números entre -100 e 0;  Os métodos mostrar de cada classe deverão ser executados ao mesmo tempo (em paralelo); 6
  7. 7. Threads  Vamos supor que desejamos criar duas classes, Positivo e Negativo; 7
  8. 8. Threads  Como fazer com que os métodos mostrar possam ser executados em paralelo?  Classes com métodos concorrentes deverão “assinar um contrato” com a interface Runnable (implementar uma interface);  Tal “contrato” exige a implementação do método run (o método que será executado em paralelo pela classe que assinou o contrato); 8
  9. 9. Threads 9
  10. 10. Threads  Como executar paralelamente os métodos run das classes Positivo e Negativo?  Para os testes, vamos criar a classe Principal do projeto;  Nela, instanciaremos as classes Positivo e Negativo;  Precisaremos criar objetos da classe Thread. Em cada instância, referenciamos o objeto que encapsula os métodos concorrentes;  A partir do objeto da classe Thread, executamos o método start(); 10
  11. 11. Threads 11
  12. 12. O método sleep()
  13. 13. O método sleep()  A classe Thread possui a implementação do método estático sleep(), que faz com que uma thread “durma” (fique inativa) por alguns milissegundos;  É preciso tratar exceções da classe InterruptedException para utilizar o referido método; 13
  14. 14. O método sleep()  Ex.: Fazer com que o método run da classe Positivo “durma” por 3 segundos a cada impressão de um número; 14
  15. 15. O método sleep() 15
  16. 16. Escalonador e Troca de Contexto
  17. 17. Escalonador e Troca de Contexto  Ainda analisando o exemplo anterior, qual método run será executado primeiro?  Não podemos garantir qual será executado primeiro!  Não é uma execução sequencial, é paralela;  Para que o paralelismo ocorra, um pouco de cada thread é executado em cada instante de tempo;  A troca é tão rápida que a sensação é que os dois métodos foram executados ao mesmo tempo; 17
  18. 18. Escalonador e Troca de Contexto  O escalonador de threads (scheduler) é responsável por...  Escolher qual a próxima thread a ser executada;  Fazer a troca de contexto (contexto switch);  O programador não pode controlar tais ações (apesar de existir formas de “influenciar” o escalonador); 18
  19. 19. Explore o assunto!
  20. 20. Explore o assunto! • Referências – CAELUM. Java e Orientação a Objetos. [Internet]. [citado em 2015 Mar 18]. Disponível em: https://www.caelum.com.br/apostila-java- orientacao-objetos/. 20

×