JAVA aprendendo sobre segmentação -1

1, cinco estados tópicos

Cinco estados fios

  • New (Nova): criar um novo objeto de discussão.

  • Run (RUNNABLE): Depois que o objeto segmento é criado, outros segmentos (como o thread principal) chama o método start () do objeto. O estado do segmento está localizado segmentos executáveis ​​na piscina, à espera de ser selecionado agendamento de segmento, adquirindo o direito de uso da CPU.

  • Run (correr): executável (Runnable) tópicos obtidos de fatia de tempo da CPU (timeslice), a execução de código do programa.

  • Bloqueado (BLOQUEADO): bloqueio de estado é o fio por algum motivo a desistir do direito de uso da CPU, que é deixado fora do timeslice cpu, interromper temporariamente a execução. Até que o segmento torna-se estado executável (executável), tem uma chance de obter cpu timeslice para run (corrida) estado novo. Caso de obstrução das três categorias:

    (A) bloqueou esperando: rosca o.wait do método run () de execução (em execução), JVM vai enfiar na fila de espera (waitting fila) no.
    (B) de bloqueio síncrono: segmento em execução (em execução), quando a aquisição de sincronização de objeto de bloqueio, se o bloqueio de sincronização está ocupado por outro segmento, a JVM se encaixará no pool de threads (piscina lock) no.
    (3) Outros bloqueio: em execução (em execução) método de execução fio Thread.sleep (longos ms) ou t.join (), ou emitir o pedido I / O, a JVM irá definir o segmento está bloqueado. Quando o sono () tempo de espera, o Junte () espera por uma rosca de terminar ou o tempo limite, ou quando o processamento de I / O está completa, o fio pode ser re-correr em estado (Execut�el).

  • (DEAD) Morte: Linha de execução (), o método principal () tiver terminado a execução, ou devido a anormal retirou-se o método de execução (), a ponta do fio do ciclo de vida. Tópico da morte não pode ser ressuscitado novamente.

2, a diferença entre o sono e espera

1, o sono é um método da classe Thread (Thread), e wait () é o método classe Object
2, sono, chamada espera fará uma pausa após o tempo de execução thread atual e deixar a CPU, mas a diferença é que o sono não vai liberar a corrente recurso bloqueio mantido pelo objeto, após o que ele vai continuar, mas vai esperar e dar-se todas as fechaduras precisa notificar / notifyAll para re-adquirir os recursos objeto de bloqueio antes de poder continuar.
3, sono anomalia a ser capturada, e espera, notificar e notifyAll necessário para capturar exceções, você deve sincronizar com as declarações no bloco.

3, sono, rendimento, juntar-se analiticamente

1, dormir
 o papel do método de sono é de suspender o tempo segmento especificado atual (em milissegundos), o método de sono é a maneira mais fácil, no exemplo acima, também é usado antes, mais fácil de entender. A única ressalva é a diferença entre a abordagem de espera. A diferença mais simples é, o método de espera depende de sincronização e método de sono pode ser chamado diretamente. O sono mentiras diferença mais profunda é um método temporário para permitir a execução da CPU, não liberar o bloqueio. O método de espera terá de liberar o bloqueio.
  
2, rendimento
  método de rendimento de ação é para suspender a thread atual, para que outros tópicos têm a chance de realizar, mas não é possível especificar o tempo de pausa, e não há nenhuma garantia para a parada thread atual imediatamente. método de rendimento simplesmente Correr estado para Executel.

3, junte-se
 a ação se juntar método é a espera segmento pai para a criança completa antes de executar a execução de thread, em outras palavras, threads de execução assíncronas serão fundidos em fio síncrona.

4, esperar e notificar / notifyAll Método Analítico

Notificar e notifyAll diferença é que o primeiro só pode despertar uma discussão sobre o monitor, nenhum efeito sobre o outro segmento, notifyAll acorda todas as threads.

(1) Depois de chamar método de espera, o segmento vai abdicar da propriedade do objeto monitor.

(2) bloqueado por um método espera segmento, as seguintes condições devem ser cumpridas a fim de ser verdadeiramente executar:

necessidades de rosca ser acordado (ou tempo limite chamada wake-up para notificar / notifyll).
    Concorrência deve bloqueio (monitor) depois que o segmento acorda.

Publicado 57 artigos originais · ganhou elogios 3 · Vistas 6200

Acho que você gosta

Origin blog.csdn.net/qq_39830579/article/details/102233958
Recomendado
Clasificación