Tópico do ciclo de vida de Java conhecimentos básicos e perguntas da entrevista relevantes

Um segmento do ciclo de vida:
(1) Ciclo de vida:
. Uma coisa a partir do momento do nascimento até a final no meio de todo o processo da morte
No ciclo de vida longo das coisas, a experiência é sempre diferentes do Estado (infantis estado / jovens estado / status do estado de meia-idade / idosos ...).
segmento também tem um ciclo de vida, mas também existem diferentes estados, transições entre cada estado.

(2) A definição da API:
Aqui Insert Picture Descrição
(3) uma representação gráfica:
Aqui Insert Picture Descrição

1: um estado novo (novo) Use para criar um novo segmento objeto, única alocado no espaço de memória heap, sob o novo estado, o fio não começar antes que o método start é chamado, não é apenas um objeto de thread .Thread t = new Thread () ;. // Este quando t pertence a um novo estado quando o objeto linha sob um novo estado chamado de método de início, desta vez do estado executável New iniciar o método de objeto de discussão chamado apenas uma vez, caso contrário, um erro :. IllegalThreadStateException.
2: estado de execução (Execut�el) É dividido em dois estados, prontos e em execução. Representam um estado de prontidão e estado executar. estado Pronto: depois de uma chamada de método start do objeto segmento, aguarda o programador JVM (esta discussão não está em execução neste momento) o estado de funcionamento: Objeto obtido JVM agendamento de segmento, se houver uma pluralidade de CPU, ele permite que múltiplos threads para executar simultaneamente.
3: estado de bloqueio (bloqueado) threads em execução desistir da CPU por algum motivo, temporariamente operacional stop, entrará no estado bloqueado. Neste JVM não será atribuído ao thread CPU, até que o segmento re-entrar no estado de pronto, ter uma chance para executar o estado. Bloqueio Estado só pode primeiro entrar no estado de pronto, não diretamente para o estado operacional dos dois casos estado de bloqueio: 1): quando um segmento está em processo de execução, tentando obter genlock, B foi nessa época fio JVM fica guardado para o segmento de uma corrente. bloqueio do objeto na piscina, um segmento no estado bloqueado 2):. quando um segmento está em processo de operação, o pedido IO é emitido, desta vez para o estado bloqueado.
4. estado de espera (em espera) (Estado de espera só pode ser despertado por outros tópicos): esperar nenhum parâmetro método utilizado neste caso, quando o segmento está em processo de execução, chamar o método wait (), a JVM neste momento não é um objeto da piscina esperando thread atual.
5: Momento estado de espera (espera cronometrado) (Suspensão ou método de espera utilizando um método com parâmetros) 1): Quando um segmento está em processo em execução, chamada wait (longo tempo) método, a presença de um objeto neste momento JVM thread atual para esperar na piscina 2): o segmento atual de execução sono (tempo) método.
6: estado final (terminado) Comumente referido como estado de morte que a rescisão rosca 0,1): Normal finais saídas método run (morte por negligência) .2): Após a saída (exceção anormal é encontrado, o programa é interrompido) (morte acidental) .- fio após o término, você não pode reiniciar o início, caso contrário, um erro (IllegalThreadStateException) obsoletas no método de classe thread (thread-safe porque há um problema, por isso obsoleto) :. vazio suspender (): pausa o currículo vazio thread atual (): a recuperação atual enrosque void stop (): o fim da linha atual

As perguntas da entrevista: Quais são o estado do fio? estado de transferência são dependentes de qual método?
A: Todos os status e estado de funcionamento são (Runnable) transferidos em
1: novo estado (nova novo) (chamada método start executável)
2: executável (Runnable)
① parâmetros utilizados neste caso não método de espera entra no estado de espera (espera)
② (sono ou método de espera utilizando um método com parâmetros, um estado de espera para o temporizador
3: bloqueando estado (bloqueado)
4. estado de espera (espera) (método apenas pode ser utilizado por outros tópicos ou notificar o método notifyAll acordar executável)
5: estado do temporizador de espera (de espera temporizada) (um tempo predeterminado para o parâmetro de tempo de)
6: estado final (terminado)

Dois tópicos de dormir:
fio do sono: thread de execução para fazer uma pausa durante algum tempo, o momento para entrar no estado de espera.
Métodos: sono void (longos millis) estática
chamada sono, desistir da CPU thread atual, dentro de um período de tempo especificado, o sono, onde o segmento não ter a chance de executar.
Tópico neste estado não irá liberar o bloqueio de sincronização / ouvinte sincronia.
O método mais utilizado para atraso de rede simular, de modo que vários segmentos acessar simultaneamente o mesmo erro efeitos mais evidentes de um recurso.
Deliberará uso deste método em desenvolvimento

III. Rosca Conjunta (a Join)
o método Junte representa um fio após espera segmento para outro segmento para execução completa. Após o método join é chamado, o objeto segmento está bloqueado.
Isso é chamado também o fio conjunta, esse segmento é o segmento atual eo segmento onde a corrente combinados em um único segmento.

class join extends Thread{
    @Override
    public void run() {
        for(int i =0;i<50;i++){
            System.out.println("join"+i);
        }
    }
}
public class JoinDemo {
    public static void main(String[] args) throws InterruptedException {
        join join = new join();
        for(int i =0;i<50;i++){
            if(i==10){
                join.start();
            }
            if(i==20){
                join.join();
            }
            System.out.println("main"+i);
        }
    }
}

Quatro discussão de fundo:
o segmento em execução em segundo plano, o seu objectivo é prestar serviços a outros tópicos, também conhecido como o "guardião da rosca." fio de coleta de lixo da JVM é uma típica discussão de fundo.
Características: Se todos os segmentos de primeiro plano morreram, fundo automático fio morte, segmento de primeiro plano não é longo, uma discussão de fundo não é o fim.
Se o objeto de teste é uma rosca de fundo: Use thread.isDaemon ().
Quando o segmento segmento de primeiro plano é criado no segmento de primeiro plano padrão, ele pode ser configurado para uma discussão de fundo por setDaenon (true) método, e se e somente se o novo segmento uma discussão de fundo é criado, um novo tópico é uma discussão de fundo.
Set discussão de fundo: thread.setDaemon (true), o processo deve começar antes da chamada de método, caso contrário IllegalThreadStateException parecem anormais.

grupo de discussão V. eo temporizador
fornecidos no JDK java.util classe Timer pacote, pode ser programado para executar tarefas específicas.
classe A TimerTask representa uma tarefa realizada pelo temporizador.
Os métodos mais comuns:
Agenda (a TimerTask Task, Long Delay, longo período): Agenda a tarefa especificada a partir do início após um atraso especificado para execução repetida-delay fixo.
cronograma (tarefa TimerTask, atraso) : Agenda a tarefa especificada no momento especificado

public class TimerDemo {
    public static void main(String[] args) {
        System.out.println("begin....");
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println(new Date().toLocaleString());
            }
        },3000,1000);
    }
}

A saída:
Aqui Insert Picture Descrição
. De classe ThreadGroup representa um grupo de discussão, pode ser a gestão centralizada de um conjunto de tópicos
do usuário ao criar um objeto thread, você pode especificar o grupo de discussão a que pertence pelo construtor.
O Thread (de ThreadGroup Group, String name);
se um segmento cria segmento B, linha B, se o pacote não está definido, então B é adicionado ao grupo de rosca uma rosca.
uma vez que um grupo de discussão para participar de um segmento, o segmento está presente no grupo thread até as matrizes de rosca, você não pode modificar o fio no meio da pacote.
quando o programa Java está sendo executado, JVM irá criar um grupo chamado segmento principal, por padrão, os tópicos são alteradas no grupo de discussão.

Publicado 99 artigos originais · ganhou elogios 2 · Vistas 2614

Acho que você gosta

Origin blog.csdn.net/weixin_41588751/article/details/105229730
Recomendado
Clasificación