SóProvas


ID
161536
Banca
FCC
Órgão
MPE-RS
Ano
2008
Provas
Disciplina
Noções de Informática
Assuntos

A classe Thread, utilizada para disparar segmentos de processamento separados dentro de um programa Java, quando está na fila apenas aguardando a sua vez para a CPU se encontra no estado

Alternativas
Comentários
  • Podemos utilizar o método Thread.getState() para retornar o estado atual da thread, dos quais temos:
    NEW, RUNNABLE, WAITING, BLOCKED, TERMINATED.

    Uma thread no estado RUNNABLE está pronta para execução, caso o computador que a executa possua apenas um processador, é possível que exista uma fila de espera com outras threads(regidas por um escalonador), diferente do estado WAITING que mesmo com o processador livre a thread só irá executar se for "acordada"
  • O método Thread.getState retorna os seguintes estados:

    1. New: quando é criada, ou seja, quando é alocada área de memória para ela.

    2. Runnable: quando está ativa. È importante frisar que uma thread runnable não está necessáriamente sendo executada, pois quem determina o tempo de execução é a JVM ou o S.O.

    3. Blocked: Quando está desativada. Para desativar uma thread é necessário que ocorra uma das 4  operações seguintes:
     3.1 Foi chamado o método sleep da thread
     3.2 Foi chamado o método suspende da thread
     3.3 A thread chamou o método wait
     3.4 A thread chamou uma operaçao I/O que bloqueou a CPU

    4. Terminated: a thread terminou a sua execução
  • -Estados da ThreadNEW, RUNNABLE(pronta), WAITING(wait, join, park..esperando notify), TIMED_WAITING(sleep, wait, join, parkNanos, parkUntil...espera com tempo marcado), BLOCKED(wait, suspend ou I/O) e TERMINATED.
  • Ilustrando as explicações anteriores, a figura apresenta os estados e transições possíveis para uma Thread: