Quando um programa Java é iniciado, um thread é executado imediatamente. A importância do tópico principal é refletida em dois aspectos:
Embora o thread principal seja criado automaticamente quando o programa é iniciado, ele pode ser controlado por um objeto Thread. Para fazer isso, você deve chamar o método currentThread () para obter uma referência a ele, que é um membro estático público da classe Thread. Sua forma usual é a seguinte:
Thread Static Thread CurrentThread ()
Este método retorna uma referência ao encadeamento que o chamou. Depois de obter uma referência ao encadeamento principal, você pode controlar o thread principal como faz para controlar outros threads.
Vamos começar revisando os seguintes exemplos:
// controlando o thread principal.class CurrentThreadDemo {public static void main (string args []) {thread t = Thread.currentThread (); do thread t.setName ("meu thread"); .println (n);Neste programa, a referência ao thread atual (ou o encadeamento principal) é obtido chamando CurrentThread (), que é armazenado na variável local t. O programa exibe as informações do thread. Em seguida, o programa chama setName () para alterar o nome interno do thread. As informações do thread são exibidas novamente. Em seguida, um número de ciclo começa a diminuir de 5, parando por um segundo a cada vez. A pausa é feita pelo método Sleep (). A declaração do sono () estipula claramente que o tempo de atraso é de 1 milissegundo. Preste atenção ao bloco de tentativa/captura fora do loop.
O método Sleep () da classe Thread pode aumentar uma exceção de interrupção. Esta situação ocorrerá quando outros tópicos quiserem perturbar o fio do sono. Este exemplo simplesmente imprime a mensagem, se foi interrompida. Nos programas reais, você deve ser flexível para lidar com esses problemas. A seguir, é apresentada a saída deste programa:
Tópico atual: Thread [Main, 5, Main] Após o nome Alterar: Tópico [My Thread, 5, Main] 54321
Observe que t é usado como saída quando o parâmetro é usado na instrução println (). O pedido de exibição: nome do thread, prioridade e nome do grupo. Por padrão, o nome do encadeamento principal é principal. Sua prioridade é 5, que também é o valor padrão, e principal também é o nome do grupo de threads ao qual ele pertence. Um grupo de threads é uma estrutura de dados que controla o estado dos threads como um conjunto inteiro. Esse processo é tratado por um ambiente de tempo de execução proprietário, para que não entre em detalhes aqui. Depois que o nome do thread é alterado, T é emitido novamente. Desta vez, o novo nome do thread é exibido.
Vamos estudar os métodos definidos pela classe Thread no programa com mais cuidado. O método Sleep () indica que o encadeamento é chamado para suspender de acordo com o tempo de milissegundos. Sua forma usual é a seguinte:
Sono estático vazio (longo milhão de segundos) lança interruptedException
A hora de pendurar é claramente definida como milissegundos. Este método pode lançar uma exceção de interrupção.
Existe uma segunda forma do método SLEEP (), que é mostrado abaixo, que permite especificar se o tempo é em milissegundos ou nanossegundos como ciclos.
Sono de vazio estático (longos milhões de segundos, nanossegundos int) lança interruptedException
O segundo formulário está disponível apenas se o período for permitido em nanossegundos. Conforme mostrado no programa acima, você pode usar o SetName () para definir o nome do thread e usar getName () para obter o nome do thread (esse processo não se reflete no programa). Esses métodos são membros da classe Thread e são declarados da seguinte forma:
Final void setName (string threadName) string final getName ()
Aqui, ThreadName refere -se especificamente ao nome do thread.