Diferença Chave - Executável vs Thread
Um programa em execução é conhecido como processo. O processo pode ser dividido em vários subprocessos. Por exemplo, o Microsoft Word é um processo. Ao mesmo tempo, ele verifica se há erros ortográficos e gramaticais. Esse é um subprocesso. Esses subprocessos são conhecidos como threads. Multithreading é o processo de executar vários threads simultaneamente. Aplicativos encadeados podem ser construídos usando diferentes linguagens de programação. Runnable e Thread estão associados à programação Java. Existem dois métodos em Java para criar um thread implementando uma interface Runnable ou estendendo a classe Thread. Ao implementar Runnable, muitos encadeamentos podem compartilhar o mesmo objeto de encadeamento, enquanto na classe Extending Thread, cada encadeamento possui um objeto exclusivo associado a ele. Essa é a principal diferença entre Runnable e Thread.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é executável
3. O que é thread
4. Semelhanças entre executável e thread
5. Comparação lado a lado - executável vs thread em formato tabular
6. Resumo
O que é executável?
Um tópico passa por alguns estados. O “novo” é o início do ciclo de vida da rosca. Depois que o método start () chama um novo encadeamento, ele se torna executável. Se o planejador de encadeamento seleciona o encadeamento, ele passa para o estado de execução. O encadeamento está aguardando o estado se esse encadeamento estiver aguardando outro encadeamento para executar uma tarefa. Depois que o encadeamento conclui o trabalho, ele vai para o estado de término.
Um thread pode ser implementado usando a interface Runnable. Consulte o programa abaixo.
Figura 01: Programa Java para criar um thread usando a interface Runnable
De acordo com o programa acima, a classe Runnable Demo implementa a interface Runnable. O método run () está dentro da classe que implementa a interface Runnable. É o ponto de entrada para o segmento. A lógica está no método run (). No programa principal, um thread é criado definindo um objeto instanciado da classe Runnable Demo. É t1. O método start () é chamado usando t1.
Consulte o programa abaixo.
Figura 02: Programa Java para criar um thread para executar um loop, implementando a interface Runnable
De acordo com o exemplo acima, a classe Runnable Demo implementa a interface Runnable. A lógica a ser executada usando o thread é escrita no método run (). No programa principal, um thread é criado definindo um objeto instanciado da classe Runnable Demo. É t1. Então, o método start () é chamado usando t1.
O que é Thread?
O outro método de criar um thread é estendendo a classe Thread. Consiste em três etapas. A primeira é declarar a classe como estendendo a classe Thread. Depois, o método run () deve ser escrito. Ele contém a sequência de etapas que o thread deve executar. Finalmente, o objeto thread é criado e o método start () é chamado para iniciar a execução do thread. Consulte o programa abaixo.
Figura 03: programa Java que estende a classe Thread
De acordo com o programa acima, a classe MyThread estende a classe Thread. Ele substitui o método de execução. O método run () contém a lógica a ser executada pelo thread. É o ponto de entrada para o segmento. Em seguida, o objeto thread é criado. É thread1. A thread é iniciada usando o método start (). Ele executará uma chamada ao método run ().
Um exemplo de programa de duas classes estendendo a classe Thread é o seguinte.
Figura 04: programa Java com duas classes que estendem a classe Thread
De acordo com o programa acima, ambas as classes A e B estão estendendo a classe Thread. Ambas as classes têm sua implementação do método run (). A thread principal é a que executa o método main (). Antes de o thread principal morrer, ele cria e inicia thread1 e thread2. No momento em que o thread principal atingiu o final do método principal, três threads estão sendo executados em paralelo. Não há uma ordem específica na qual os threads fornecem saída. Depois que o thread é iniciado, é difícil decidir a ordem em que eles serão executados. Eles funcionam de forma independente.
Quais são as semelhanças entre executável e thread?
Ambos estão usando para criar um thread em Java
Qual é a diferença entre executável e thread?
Artigo Diff meio antes da tabela
Runnable vs Thread |
|
Runnable é uma interface em Java para criar um encadeamento que permite que muitos encadeamentos compartilhem o mesmo objeto de encadeamento. | O thread é uma classe em Java para criar um thread em que cada thread possui um objeto exclusivo associado a ele. |
Memória | |
Em Runnable, vários threads compartilham o mesmo objeto, portanto, requerem menos memória. | Na classe Thread, cada thread cria um objeto único, portanto, requer mais memória. |
Estendendo habilidade | |
Depois de implementar a interface Runnable, ele pode estender uma classe. | Múltiplas heranças não são suportadas em Java. Depois de estender a classe Thread, ele não pode estender nenhuma outra classe. |
Manutenção do Código | |
A interface executável torna o código mais sustentável. | Na classe Thread, a manutenção é demorada. |
Resumo - Executável vs Thread
Um processo é dividido em vários subprocessos para executar várias tarefas ao mesmo tempo. Esses subprocessos são conhecidos como threads. A instanciação de um thread pode ser feita implementando a interface Runnable ou estendendo a classe Thread. É fácil estender a classe Thread, mas não é uma prática melhor de Programação Orientada a Objetos. Ao implementar Runnable, muitos encadeamentos podem compartilhar o mesmo objeto de encadeamento, enquanto na classe Thread de extensão, cada encadeamento possui um objeto exclusivo associado a ele. Essa é a diferença entre Runnable e Thread. Na classe Thread, a criação de vários objetos pode consumir mais memória.
Baixe o PDF do Runnable vs Thread
Você pode baixar a versão PDF deste artigo e usá-la para fins off-line de acordo com a nota de citação. Faça o download da versão em PDF aqui. Diferença entre executável e thread