Введение Java Интервью Вопросы и ответы по многопоточности

Прежде чем перейти к вопросам интервью на Java по многопоточности, давайте обсудим некоторые факты о многопоточности.

# 1 - Итак, мы должны сначала знать, что это за нить?

Это самая маленькая единица обработки определенной работы, называемая потоком. Это легкий по своей природе, так простой в использовании. Теперь нам приходит в голову, что для чего нам это нужно, многопоточность используется для достижения многозадачности. Многозадачность может быть достигнута и другим способом, и она называется Multiprocessing.

Тем не менее, многопоточность более популярна, и ее эффективнее использовать над многопроцессорной обработкой, поскольку потоки имеют свойства, которые используются в области общей памяти, тогда как в случае многопроцессорной обработки она потребляет много памяти и других ресурсов, что неэффективно.

Поэтому процесс одновременного выполнения нескольких потоков для выполнения некоторой работы называется многопоточностью.

Некоторые преимущества использования многопоточности:

  • Потоки работают независимо, поэтому они не зависят от других операций, выполняемых в системах, и, таким образом, можно выполнять несколько операций одновременно.
  • Потребление времени меньше с использованием многопоточности, так как многие операции могут выполняться одновременно.
  • Потоки независимы, как уже обсуждалось, поэтому исключение, возникающее в одном потоке, не будет мешать работе других потоков.
  • Стоимость связи между двумя нитями низкая.

Мы можем добиться многозадачности следующими двумя способами:

  • Многозадачность на основе процессов (Multiprocessing)
  • Многозадачность на основе потоков (Multithreading)

ПРИМЕЧАНИЕ. Поскольку мы обсуждаем многопоточность, мы сосредоточимся на многозадачности на основе потоков.

Жизненный цикл потока:

  • новый
  • Runnable
  • Бег
  • Не работает (заблокировано)
  • Отменено

ПРИМЕЧАНИЕ. Для справки и лучшего понимания внимательно просмотрите изображение ниже.

# 2 - Как создаются темы?

Теперь это самый важный и первый пункт, с помощью которого мы можем создать поток. Существует два способа создания потоков, которые обсуждаются ниже:

  • Расширяя класс Thread
  • Реализуя интерфейс Runnable

НОТА:

При создании нового потока выполняются следующие задачи:

  1. В новом стеке вызовов будет создан поток.
  2. Поток меняет свое состояние с Нового на Runnable.
  3. Когда поток будет запущен, он найдет метод run () и затем выполнится.

ПРИМЕР:

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();
)
)

ПРИМЕР:
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();
)
)

ПРИМЕЧАНИЕ. Обратите внимание на разницу в приведенных выше двух примерах. Основное различие в приведенных выше двух примерах заключается в том, что если мы не расширяем Thread, а пытаемся создать Thread, реализуя интерфейс Runnable и классом метода start () для запуска Thread, то Tread не будет создан в новом стеке вызовов. поскольку это не будет идентифицировано как Поток.

Таким образом, чтобы идентифицировать его как Thread, мы должны передать экземпляр класса, в котором мы реализовали интерфейс Runnable, в качестве аргумента для конструктора класса Thread, а затем мы должны вызвать метод start ().

Планирование в потоке:

Поскольку все они знают, что расписание означает выполнение плана задачи в определенное время.

Планирование потоков - это аналогичный механизм планирования определенного потока, который поддерживает некоторые протоколы. Есть два разных способа планирования потоков в Java.

  • Упреждающее планирование
  • Время нарезки.

Упреждающее планирование:

JMV решает задачу с наивысшим приоритетом и начинает выполнение до тех пор, пока не войдет в состояние ожидания или ожидания или пока не появится задача с более высоким приоритетом.

Время нарезки:

JVM начинает выполнение определенного потока в течение определенного периода времени, а затем перемещает тот же поток в пул и выбирает другой поток на основе приоритета и других факторов для выполнения. Этот процесс продолжается до тех пор, пока весь поток не завершит свой процесс.

Теперь, если вы ищете работу, связанную с многопоточностью Java, то вам необходимо подготовиться к Вопросам по интервью Java 2018 по многопоточности. Это правда, что каждое собеседование отличается в зависимости от профилей работы. Здесь мы подготовили важные вопросы для интервью на Java и ответы по многопоточности, которые помогут вам добиться успеха в вашем интервью.

В этой статье 2018 «Вопросы интервью Java по многопоточности» мы представим 10 наиболее важных и часто задаваемых вопросов по интервью Java по многопоточности. Эти вопросы интервью делятся на две части:

Часть 1 - Java Интервью Вопросы по многопоточности (Basic)

Эта первая часть охватывает основные вопросы интервью Java и ответы по многопоточности.

Q1. Различить процесс и поток?

Ответ:
Процесс - это программа или приложение, тогда как Thread - это отдельная задача, которая должна быть выполнена внутри процесса. Нить легкая, а процесс тяжелый. Поток требует меньше, тогда как Процесс требует больше ресурсов, поэтому его называют тяжелым по своей природе.

Q2. Различить пользовательский поток и поток демона?

Ответ:
Поток, созданный в Java, называется пользовательским потоком. Поток Демона всегда работает в фоновом режиме, и его полный жизненный цикл зависит от основного потока. Поток демона, работающий в фоновом режиме, не помешает JVM завершить его. Дочерний поток, созданный из потока демона, также будет потоком демона.

Давайте перейдем к следующему Java-интервью по вопросам многопоточности.

Q3. Другой способ создания потока в Java?

Ответ:
Потоки в Java могут быть созданы двумя способами:

  • Расширяя класс потока.
  • Благодаря реализации Runnable Interface.

Q4. Каков жизненный цикл Нити?

Ответ:
Это общие вопросы интервью Java о многопоточности, задаваемые в интервью. Ниже приводится жизненный цикл потока:

  • новый
  • Runnable.
  • Бег.
  • Заблокированные.
  • Отменено.

Q5. Что произойдет, если мы вызовем метод run () класса Thread?

Ответ:
Непосредственный вызов метода run () скомпилирует и выполнит программу успешно, но та же программа не будет обрабатываться как Thread, поскольку новый стек вызовов не будет создан, и программа начнет свое выполнение в том же стеке вызовов, где выполняется main.

Для создания потока, который должен работать с новым стеком вызовов, нужно использовать метод start () класса Thread.

Часть 2 - вопросы интервью Java по многопоточности (продвинутый уровень)

Теперь давайте взглянем на расширенные вопросы и ответы по Java для многопоточности.

Q6. Можем ли мы приостановить выполнение потока в определенное время?

Ответ:
Да, это может быть достигнуто в Java, вызывая sleep () класса Thread. Метод Sleep () также принимает аргумент, который указывает время в миллисекундах.

Q7. Как мы можем добиться планирования потока в Java?

Ответ:
Да, планирование потоков в Java возможно. Потоки в Java могут быть запланированы двумя способами, т.е. нарезкой по времени и упреждающим планированием.

Давайте перейдем к следующему Java-интервью по вопросам многопоточности.

Q8. Можно ли запустить тему дважды?

Ответ:
Нет, поток не может быть запущен дважды. Если мы попытаемся запустить поток дважды, он выдаст «java.lang.IllegalThreadStateException».

Q9. Что такое отключение хука в Java?

Ответ:
Это самые популярные вопросы интервью Java о многопоточности, задаваемые в интервью. Хук отключения - это механизм, который используется для очистки ресурсов, когда JVM выключается нормально или внезапно.

В10. Что является летучим?

Ответ:
Volatile - это ключевое слово в Java, и его можно использовать с переменными. Если переменная объявлена ​​как volatile, все потоки будут считывать значение одной и той же переменной из основной памяти, а не из кэша, таким образом, это предотвращает чтение ошибок, когда несколько потоков используют одну и ту же переменную в своих операциях.

Рекомендуемые статьи

Это было руководство к списку вопросов интервью Java и ответов по многопоточности, чтобы кандидат мог легко разобрать эти вопросы интервью Java по многопоточности. Здесь, в этом посте, мы изучили лучшие вопросы Java-интервью по многопоточности, которые часто задают в интервью. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Структура данных Java Интервью Вопросы
  2. Упс Java вопросы интервью
  3. Многопоточность Интервью Вопросы на Java
  4. Вопросы по тестированию Java