Primeiro, dê uma olhada no status de corrida de cada etapa do tópico Java em execução
Um thread é uma entidade em um processo e é a unidade básica que é agendada e despachada independentemente pelo sistema. Processe com outros threads que pertencem ao mesmo processo. Um thread pode criar e desfazer outro thread, e vários threads no mesmo processo podem ser executados simultaneamente. Devido às restrições mútuas entre os threads, os threads parecem intermitentes durante a operação.
Nos sistemas operacionais que introduzem threads, os processos geralmente são usados como unidade básica para alocar recursos e os threads são usados como unidade básica para operação independente e programação independente. Como os threads são menores que os processos e basicamente não possuem recursos do sistema, a sobrecarga da programação será muito menor, o que pode melhorar com mais eficiência o grau de execução simultânea entre vários programas no sistema, melhorando significativamente a utilização e taxa de transferência do sistema.
Os threads são um único processo de controle seqüencial em um programa. Executando vários threads simultaneamente em um único programa para concluir trabalhos diferentes, chamados multithreading.
O multithreading é usado principalmente para salvar o tempo da CPU e utilizá -lo.
O multithreading é concluir várias tarefas simultaneamente, não para melhorar a eficiência operacional, mas para melhorar a eficiência do uso de recursos para melhorar a eficiência do sistema. Os tópicos são implementados quando várias tarefas precisam ser concluídas ao mesmo tempo.
Existem duas maneiras de implementar multi-threading em java
1. Herdar a classe de threads
2. Implemente a interface executável
Quais são os pontos comuns desses dois métodos:
Não importa qual método seja usado, você deve usar o encadeamento (se for uma subclasse de encadeamento, use -o) para gerar o thread e, em seguida, chamar o método start ().
As diferenças entre os dois métodos:
1. Uma desvantagem de herdar a classe de encadeamentos é a herança única, enquanto a implementação da interface executável compensa suas deficiências, e a herança múltipla pode ser alcançada.
2. Se você herdar a classe Thread, se você gerar um objeto de instância executável, deverá gerar vários objetos de instância executável e, em seguida, use o thread para gerar vários threads; Esta classe e, em seguida, use esta instância. Isto é, o compartilhamento de recursos é realizado
Com base nos dois pontos acima, é recomendável usar o segundo método
O seguinte é um exemplo para ilustrar
Programa 1:
pacote com.dr.runnable1; // uma classe herda a classe Thread, então esta classe é uma classe multi-thread. /Se para usar o multithreading, você deve ter o corpo de um método public void run () {// printout for (int i = 0; i <10; i ++) {System.out.println (this.name+"--- -> executar ,,,, ");}}} public class Demo1 {public static void main (string args []) {// O primeiro método executado r1 = new mythread (" thread a "); runnable r2 = novo mythread ("Thread B"); ); métodos // mythread mt1 = new mythread ("thread a"); // mythread mt2 = new mythread ("thread b"); // mythread mt3 = new mythread ("thread c"); // mt1.start () ; // mt1.start (); // thread pode iniciar apenas uma vez // mt2.start (); // mt3.start ();Os resultados em execução do programa são:
Isso está herdando a classe de threads, o primeiro método gera vários objetos de instância executável e, em seguida, usa thread para gerar vários threads
O segundo método é que, como essa classe herdou a classe Thread, pode usá -la diretamente para gerar vários threads.
Programa 2:
pacote com.dr.runnable1; classe mythread1 implementa runnable {private int ticket = 10; out .println ("Ticket ----->"+(this.ticket--)); : ::::::::::::::::::::::Here :::::::::::::::::::hee :::::::::::::::::heo the : ::::::::::::::::::::::Here :::::::::::::::::::hee :::::::::::::::::heo the :::::::::::::::::::::::::::::: on: thread t1 = novo thread (mt); (mt);Resultados em execução do programa:
Este programa implementa o Runnable, gera uma classe de objetos de instância e, em seguida, usa o thread para gerar vários threads.