1 / 13

Ciclo de vida e escalonamento de Threads

Ciclo de vida e escalonamento de Threads. Professor: Hyggo Almeida. O que vimos na última aula ?. Threads Introdução Implementação. O que veremos hoje ?. Threads Ciclo de vida Escalonamento. Ciclo de vida de uma thread. Diagrama de estados.

gloria
Download Presentation

Ciclo de vida e escalonamento de 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. Ciclo de vida e escalonamento deThreads Professor: Hyggo Almeida

  2. O que vimos na última aula? • Threads • Introdução • Implementação Ciclo de vida e escalonamento deThreads

  3. O que veremos hoje? • Threads • Ciclo de vida • Escalonamento Ciclo de vida e escalonamento deThreads

  4. Ciclo de vida de uma thread • Diagrama de estados Escalona a thread para executar (método run) Qualquer outra operação causa IllegalThreadStateException sleep/wait start New Thread Runnable Not Runnable Ou há uma chamada de sistema que o deixa lento (I/O) run Tempo passou; notify chamado; I/O terminou Thread myThread = new Thread(“mine”); Dead Fim da execução do método run Ciclo de vida e escalonamento deThreads

  5. Ciclo de vida de uma thread • Parando uma thread... • Não utilizar o método stop() • Depreciado • Problemas de segurança • Finalize a execução através da finalização do método run() • Deixe o coletor de lixo fazer o restante do trabalho • myThread = null; Ciclo de vida e escalonamento deThreads

  6. Ciclo de vida de uma thread • Estado atual da thread... em Java • Método isAlive() • truesignifica que o estado é RUNNABLE ou NON-RUNNABLE • Em Java 5 há o método getState() • NEW • RUNNABLE • BLOCKED • WAITING • TIMED_WAITING • TERMINATED

  7. Escalonamento de threads • Emumaúnica CPU tem-se umailusão de paralelismo • Mesmo com várias CPUs pode haver mais threads a serem executadas • O ilusionismo aqui é realizado através de escalonamento • JVM – Escalonamento com prioridades fixas Ciclo de vida e escalonamento deThreads

  8. Escalonamento de threads • JVM – Escalonamento com prioridades fixas • Quando uma thread é criada possui a prioridade da thread na qual foi criada • O método setPriority pode ser usado para definir prioridades entre MIN_PRIORITY e MAX_PRIORITY • Quanto maior o valor, mais prioritária é a execução de uma thread em relação às outras • Quando a CPU procura uma thread, escolhe o de maior prioridade que esteja pronto para executar • Se as prioridades são iguais, escolhe-se aleatoriamente Ciclo de vida e escalonamento deThreads

  9. Escalonamento de threads • JVM – Escalonamento com prioridades fixas • A thread executa até que... • ...uma thread de mais alta prioridade se torna pronta para rodar (preemption) • ...ela ceda a CPU (chamando o método yield()) • ...o método run()termine (DEAD) • ...sua fatia de tempo acabe (time slicing) • Neste momento outro thread pode executar seguindo a ordem de prioridades Ciclo de vida e escalonamento deThreads

  10. Escalonamento de threads • Time Slicing • Definição de fatias de tempo • Para evitar threads egoístas • Pode-se tomar o controle da CPU • Sistema operacional com suporte a threads • Força que as threads da JVM tenham fatias de tempo • O método yield() pode ser usado para realizar o time slicingno nível da JVM Ciclo de vida e escalonamento deThreads

  11. O que vimos hoje? • Threads • Ciclo de vida • Escalonamento Ciclo de vida e escalonamento deThreads

  12. O que veremos na próxima aula? • Threads • Sincronização Ciclo de vida e escalonamento deThreads

  13. Dúvidas? ? Ciclo de vida e escalonamento deThreads

More Related