Este artigo apresenta um guia completo de multithreading em Java e, para uma compreensão profunda, cobrirá os seguintes conceitos:
Então vamos começar!
O que é multithreading
É um processo que nos permite executar pelo menos dois threads ao mesmo tempo e também é chamado de concorrência em java. O Java Multithreading maximiza a utilização da CPU, pois executa todos os threads parallelly. Além disso, salva a memória, pois na leitura multithread que não há necessidade de alocar memória separada para vários threads.
Por que o multithreading é importante em Java
O MultithReading fornece uma ampla gama de recursos e o significado do Java Multithreading pode ser avaliado a partir dos recursos listados abaixo:
Apenas alguns recursos estão listados aqui, no entanto, há muito mais como escalabilidade, custo-efetividade, etc. que mostram o domínio da multithreading.
Ciclo de vida de tópicos em java
A partir de agora, aprendemos o que é multithreading e por que é tão importante em Java? Agora, aprenderemos sobre o ciclo de vida do tópico, composto por vários estados, conforme listado abaixo:
Novo: Nesse estado, um tópico é iniciado/criado usando o "Fio" classe ou “Runnable” interface. Ele permanece dentro desse estado até que um programa inicie/inicie um tópico.
Runnable: Nesse estado, a instância do thread será invocada usando um método interno iniciante () e o thread permanece no estado executável até que uma tarefa esteja executando.
Correndo: Nesse estado, um tópico inicia a execução.
Esperando: Nesta fase, o tópico vai para um estado temporariamente inativo, o que significa que um tópico está dormindo, esperando ou em um estado bloqueado.
Terminado/morto: Um encadeamento entra nesse estado quando ocorre uma exceção ou se o thread concluir sua execução/processamento.
Métodos de construção Java para multithreading
Há uma lista de métodos predefinidos de Java que podem ser usados dentro dos threads para obter diferentes funcionalidades. Alguns métodos usados com frequência estão listados na tabela abaixo do rumo:
Nome do método | Descrição |
---|---|
começar() | É usado para iniciar a execução do tópico. |
correr() | executa ação específica para um tópico. |
getName () | Retorna o nome do tópico. |
colheita () | Interrompe o fio atual e permite que outros sejam executados. |
SetPriority (int NewPriority) | Especifica a prioridade do fio. |
getPriority () | Retorna a prioridade do thread. |
Sono (int milissegundos) | Acomoda o tópico para um período de tempo especificado. |
getid () | Retorna a identificação do thread. |
Implementação prática de multithreading em Java
Agora, é hora de entender o conceito de Java Multithreading usando a implementação prática. Então, vamos considerar um exemplo em que realizaremos multithreading e utilizaremos alguns dos métodos internos acima mencionados.
Exemplo
Neste exemplo, executaremos o multithreading implementando a interface executável:
classe pública multithreadingExample implementa RunnableNo trecho de código acima, implementamos a interface Java Runnable e, dentro da classe, utilizamos o @Sobrepor anotação que mostra que o “MultithreadingExample” está substituindo o correr() Método de interface executável. Depois, criamos vários tópicos e iniciamos a execução do thread usando o começar() método. Finalmente, temos os nomes do tópico usando o getName () Método e imprima -os como mostrado no snippet abaixo:
Isso verifica o funcionamento de multi-threads em java.
No exemplo acima, realizamos multithreading implementando Executável interface. No entanto, também podemos realizar multithreading, estendendo um predefinido Fio Classe como mostrado no snippet seguinte:
Public Class MultithreadingExample estende threadAo estender a classe Thread, você pode aproveitar as funcionalidades dos métodos Java predefinidos.
Conclusão
O multithreading permite a execução simultânea de dois ou mais threads que maximizam a utilização da CPU, economiza tempo, memória, etc. O multithreading pode ser realizado estendendo ou implementando a classe Thread ou interface executável, respectivamente. Vários métodos internos da classe de roscas e interface executável podem ser usados no multithreading para executar diferentes funcionalidades, como interromper o fio atual e permitir que outros threads sejam executados, especificando prioridade aos threads, e assim por diante.
Esta redação explica diferentes aspectos do multithreading, como o que é multithreading, sua importância, ciclo de vida, métodos e implementação prática.