1 / 26

Threads

Capítulo 8. Threads. Threads. Introdução Criando e executando threads A classe java . lang .Thread A interface java . lang . Runnable Estados da thread. O Scheduler Prioridades das threads Interação entre threads Sincronização Bloqueios Deadlock. Introdução às threads.

jin
Télécharger la présentation

Threads

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 8 Threads

  2. Threads • Introdução • Criando e executando threads • A classe java.lang.Thread • A interface java.lang.Runnable • Estados da thread • O Scheduler • Prioridades das threads • Interação entre threads • Sincronização • Bloqueios • Deadlock

  3. Introdução às threads • Uma thread representa uma linha de execução de sua aplicação Java, onde as instruções são executadas uma por vez. • Quando executamos uma aplicação Java, o JVM dá início à thread raiz da aplicação através do método main()

  4. Introdução às threads main() metodo1() metodo2() ...() metodoN()

  5. Programação multithreaded • Através do uso de múltiplas threads podemos realizar o processamento simultâneo de partes diferentes de sua aplicação. • O desenvolvimento de aplicações que possuem múltiplas threads é chamada programação multithreaded ou programação concorrente.

  6. Programação multithreaded run() x() y() z() main() a() b() c() d() run() m() n() run() k()

  7. Criando e executando threads • Forma 1 Uma das formas mais simples de criar e executar uma nova thread é através da classe java.lang.Thread: • Crie uma nova classe derivada (filha) da classe java.lang.Thread e sobrescreva o método run() inserindo as instruções a serem executadas pela nova thread • A partir de sua aplicação principal crie uma instância desta classe thread e execute o seu método start()

  8. Criando e executando threads • Forma 1 publicclassMinhaThreadextendsThread { publicvoidrun() { ... ... } } publicclass Principal { publicstaticvoidmain(String[] args) { Thread t = newMinhaThread(); t.start(); ... ... } }

  9. Criando e executando threads • Forma 2 Uma outra forma de criar e executar uma nova thread é através da interface java.lang.Runnable: • Crie uma nova classe que implementa a interface java.lang.Runnable e implemente o método run() inserindo as instruções a serem executadas pela nova thread • A partir de sua aplicação principal crie uma instância da classe java.lang.Thread passando em seu método construtor uma instância de sua classe de sua classe thread e então execute o seu método start() da thread

  10. Criando e executando threads • Forma 2 publicclassMinhaThreadimplementsRunnable { publicvoidrun() { ... ... } } publicclass Principal { publicstaticvoidmain(String[] args) { Thread t = new Thread(newMinhaThread()); t.start(); ... ... } }

  11. Construtores

  12. Estados da thread Pronta para ser executada Dormindo Suspensa Bloqueada Executando Morta

  13. Estados da thread • Pronta para ser executada Uma thread fica pronta para ser executada tão logo seu método start() é executado. Lá ela fica aguardando até que o JVM tenha oportunidade de executá-la start() Pronta para ser executada Executando

  14. Estados da thread • Executando Durante a sua execução, uma thread pode deixar de ser executada, cedendo sua vez para Pronta para ser executada yeld() Executando

  15. Estados da thread • Morta Executando stop() Morta

  16. Estados da thread • Dormindo Pronta para ser executada Dormindo sleep(millis) Executando

  17. Estados da thread • Suspensa Pronta para ser executada resume() Suspensa suspend() Executando

  18. Estados da thread • Bloqueada Pronta para ser executada notify() Bloqueada wait() Executando

  19. Estados da thread start() Pronta para ser executada resume() notify() Dormindo Suspensa Bloqueada yeld() sleep(millis) suspend() wait() Executando stop() Morta

  20. OScheduler

  21. Prioridades das threads

  22. Estados de uma thread

  23. Sincronização

  24. Bloqueios

  25. Deadlock

  26. Interação entre threads

More Related