Introdução Perguntas e respostas da entrevista em Java sobre multithreading

Antes de prosseguir para as perguntas da entrevista sobre Java no Multithreading, vamos discutir algo sobre alguns fatos sobre o multithreading.

# 1 - Então devemos saber primeiro qual é o fio?

É a menor unidade de processamento em que um trabalho específico é chamado de thread. É de natureza leve e fácil de usar. Agora, percebemos que, por que deveríamos precisar, o multithreading é usado para obter multitarefa. A multitarefa também pode ser alcançada de outra maneira e é conhecida como multiprocessamento.

No entanto, o multithreading é mais popular e é eficiente para uso em multiprocessamento, porque os threads têm propriedades que usam uma área de memória compartilhada, enquanto que no caso de multiprocessos consome muita memória e outros recursos que não são eficientes.

Portanto, o processo de execução de vários threads simultaneamente para realizar algum trabalho é chamado de multithreading.

Algumas vantagens do uso de multithreading:

  • Os encadeamentos funcionam independentemente, portanto, são independentes de outras operações realizadas nos sistemas e, portanto, é possível executar várias operações ao mesmo tempo.
  • O consumo de tempo é menor com o uso de multithreading, pois muitas operações podem ser executadas simultaneamente.
  • Os encadeamentos são independentes, como já discutido, portanto, uma exceção ocorre em um único encadeamento não interfere nas operações de outros encadeamentos.
  • O custo das comunicações entre dois threads é baixo.

Podemos realizar multitarefa das duas maneiras a seguir:

  • Multitarefa baseada em processos (multiprocessamento)
  • Multitarefa baseada em thread (multithreading)

NOTA: Como estamos discutindo multithreading, focaremos na multitarefa baseada em threads.

Ciclo de vida de um segmento:

  • Novo
  • Executável
  • Corrida
  • Não executável (bloqueado)
  • Terminado

NOTA: Para sua referência e melhor entendimento, siga a imagem abaixo com cuidado.

# 2 - Como os threads são criados?

Agora, este é o ponto mais importante e o primeiro pelo qual podemos criar o encadeamento. Existem duas maneiras pelas quais os threads podem ser criados, discutidos abaixo:

  • Estendendo a classe Thread
  • Implementando a interface Runnable

NOTA:

Quando um novo encadeamento foi criado, as seguintes tarefas são executadas:

  1. Em uma nova pilha de chamadas, um encadeamento será criado.
  2. O segmento altera seu estado de Novo para Runnable.
  3. Quando o encadeamento será iniciado, ele encontra o método run () e, em seguida, ele será executado.

EXEMPLO:

By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)

EXEMPLO:
By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)

NOTA: Lembre-se da diferença nos dois exemplos acima. A principal diferença nos dois exemplos acima é que, se não estendermos o Thread, tentaremos criar o Thread implementando a interface Runnable e classificar o método start () para iniciar o Thread, o Tread não será criado em uma nova pilha de chamadas. pois não será identificado como um Thread.

Portanto, para identificá-lo como Thread, precisamos passar a instância da Classe em que implementamos a Interface Runnable como argumento para o construtor da classe Thread e, em seguida, precisamos chamar o método start ().

Agendamento no Thread:

Como todos sabem, esse cronograma significa planejar uma tarefa em um determinado momento.

O agendamento de threads é um mecanismo semelhante de agendamento de um thread específico que mantém alguns protocolos. Existem duas maneiras diferentes pelas quais o agendamento de threads funciona em Java.

  • Agendamento preventivo
  • Time Slicing.

Agendamento preventivo:

A JMV decide a tarefa de maior prioridade e inicia a execução até que ela entre nos estados de espera ou inoperante ou uma tarefa de prioridade mais alta passa a existir.

Tempo de corte:

A JVM começa a executar um encadeamento específico por um período específico e, em seguida, move o mesmo encadeamento para o conjunto e escolhe outro encadeamento com base na prioridade e em outros fatores para execuções. Esse processo continua até que todo o thread termine seu processo.

Agora, se você estiver procurando por um trabalho relacionado ao Java Multithreading, precisará se preparar para as Perguntas da entrevista de Java 2018 sobre Multithreading. É verdade que cada entrevista é diferente de acordo com os diferentes perfis de trabalho. Aqui, preparamos as importantes Perguntas e Respostas da Entrevista Java sobre Multithreading, que o ajudarão a obter sucesso em sua entrevista.

Neste artigo 2018 Interview Questions on Multithreading de 2018, apresentaremos as 10 perguntas mais importantes e mais frequentes sobre entrevistas de Java no Multithreading. Essas perguntas da entrevista estão divididas em duas partes:

Parte 1 - Perguntas da entrevista sobre Java em multithreading (básico)

Esta primeira parte aborda as perguntas e respostas básicas da entrevista em Java sobre multithreading.

Q1 Diferenciar entre processo e thread?

Responda:
Um processo é um programa ou aplicativo, enquanto o Thread é uma tarefa única a ser executada dentro de um processo. O segmento é leve, enquanto o processo é pesado. O segmento requer menos, enquanto o Processo requer mais recursos, portanto, é denominado como fortemente ponderado na natureza.

Q2 Diferenciar entre usuário Thread e daemon Thread?

Responda:
Um thread criado em java é denominado como User Thread. Um segmento Daemon sempre é executado em segundo plano e seu ciclo de vida completo depende do segmento principal. Um encadeamento daemon em execução em segundo plano não impedirá que a JVM o encerre. O encadeamento filho criado a partir de um encadeamento daemon também será um encadeamento daemon.

Vamos para as próximas perguntas da entrevista sobre Java em multithreading.

Q3 A maneira diferente de criar um Thread em Java?

Responda:
Os encadeamentos em Java podem ser criados de duas maneiras:

  • Estendendo a classe do encadeamento.
  • Implementando a Interface Runnable.

Q4. Qual é o ciclo de vida do Thread?

Responda:
Essas são as perguntas comuns da entrevista sobre Java sobre multithreading feitas em uma entrevista. A seguir, é apresentado o ciclo de vida de um Thread:

  • Novo
  • Executável.
  • Corrida.
  • Bloqueado.
  • Terminado.

Q5 O que acontece se chamarmos o método run () de uma classe Thread?

Responda:
Chamar o método run () diretamente compilará e executará o programa com êxito, mas o mesmo programa não será tratado como Thread, porque nenhuma nova pilha de chamadas será criada e o programa iniciará sua execução na mesma pilha de chamadas em que o principal está sendo executado.

Para criar Thread, que deve ser executado com uma nova pilha de chamadas, é necessário usar o método start () da classe Thread.

Parte 2 - Perguntas da entrevista sobre Java em multithreading (avançado)

Vamos agora dar uma olhada nas perguntas e respostas avançadas da entrevista em Java sobre multithreading.

Q6 Podemos pausar a execução de um Thread em um horário específico?

Responda:
Sim, isso pode ser conseguido em java chamando sleep () da classe Thread. O método Sleep () também aceita um argumento que indica o tempo em milissegundos.

Q7 Como podemos conseguir o agendamento de threads em java?

Responda:
Sim, o agendamento de threads em java é possível. Os encadeamentos em Java podem ser agendados de duas maneiras, por exemplo, Time Slicing e Preemptive Scheduling.

Vamos para as próximas perguntas da entrevista sobre Java em multithreading.

Q8 Um segmento pode ser iniciado duas vezes?

Responda:
Não, um encadeamento não pode ser iniciado duas vezes. Se tentarmos iniciar um thread duas vezes, ele lançará “java.lang.IllegalThreadStateException”.

Q9 O que é o gancho de desligamento em Java?

Responda:
Estas são as perguntas mais populares sobre entrevistas em Java sobre multithreading feitas em uma entrevista. Um gancho de encerramento é um mecanismo usado para recursos de limpeza quando a JVM é encerrada normalmente ou abruptamente.

Q10. O que é volátil?

Responda:
Volátil é uma palavra-chave em java e pode ser usada com variáveis. Se uma variável for declarada como volátil, todos os encadeamentos lerão o valor da mesma variável na memória principal, e não no cache, evitando a leitura de erros quando vários encadeamentos usarem a mesma variável em suas operações.

Artigos recomendados

Este foi um guia para a lista de Perguntas e Respostas de Entrevistas Java sobre Multithreading, para que o candidato possa reprimir essas Perguntas de Entrevistas Java sobre Multithreading facilmente. Aqui neste post, estudamos as principais perguntas da entrevista sobre Java em multithreading, que são frequentemente solicitadas em entrevistas. Você também pode consultar os seguintes artigos para saber mais -

  1. Estrutura de dados Java Interview Questions
  2. Oops perguntas da entrevista sobre Java
  3. Perguntas da entrevista multithreading em Java
  4. Perguntas da entrevista de teste de Java