Лучшие 10 вопросов по многопоточности в Java (Обновление для 2019 г.)

Содержание:

Anonim

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

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

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

В этой статье 2019 Multithreading Interview Questions in Java мы представим 10 наиболее важных и часто задаваемых вопросов Multithreading интервью в Java. Эти вопросы интервью делятся на две части:

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

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

Q1. Объясните различные состояния темы?

Ответ:
Состояния потока также называются жизненным циклом потока. Ниже приведены различные состояния потока:

  • Новый: это означает, что поток находится в новом состоянии и должен создать экземпляр класса потока перед вызовом метода запуска.
  • Runnable: после вызова метода start поток находится в состоянии runnable, и планировщик не выбрал его для запуска потока.
  • Запуск: Когда выбран планировщик потоков, он находится в рабочем состоянии.
  • Заблокированный: он также известен как неуправляемый. Когда поток не может быть запущен, но поток все еще жив.
  • Завершено: это состояние при выходе из метода выполнения или в мертвом состоянии.

Q2. Какая нить в Java?

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

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

Q3. Объясните разницу между потоком и процессом в JAVA?

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

Q4. Объясните о модели памяти Java?

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

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

Q5. Объясните использование переменной Volatile в многопоточности Java?

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

Часть 2 - Многопоточность Интервью Вопросы на Java (Advanced)

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

Q6. Объясните состояние гонки в темах?

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

Q7. Объясните инфраструктуру fork-join в Java?

Ответ:
Фреймворк fork-join представлен в JDK7. Для Java-разработчика это мощный инструмент, позволяющий использовать преимущества множества процессоров современных мировых серверов. Он в основном предназначен для работы, которая может быть разделена на более мелкие части. Основная цель - использовать доступную вычислительную мощность для повышения производительности приложений. В основном использовался алгоритм кражи работы.

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

Q8. Объясните пул потоков и его использование в Java?

Ответ:
Пул потоков известен как пул потоков. Поток обычно называется рабочим потоком. Создание потока является дорогостоящим во многих отношениях, таких как время и ресурсы. Когда вы создаете поток во время запроса процесса, обычно это замедляет время отклика процессора, и может быть создано только некоторое ограничение в количестве потоков. Итак, из-за этих двух основных проблем был создан пул потоков. В Java API Java позволяет нам создавать различные типы пулов потоков, например, один пул потоков, которые занимают только один процесс за один раз. Другой - это фиксированный пул потоков, который принимает фиксированное количество потоков. Затем существует кешированный пул потоков, который является расширяемым пулом потоков и в основном подходит для приложений для многих задач.

Q9. Как данные могут быть разделены между потоками?

Ответ:
Это самая популярная многопоточность Интервью Вопросы на Java, заданные в интервью. Некоторые популярные тестовые случаи в современной ИТ-индустрии.

Данные могут быть разделены между потоками с помощью использования общего объекта или параллельной структуры данных, такой как очередь блокировки. Он в основном следует шаблону «производитель-потребитель», используя ожидание, и уведомляет методы, которые включают совместное использование объекта между двумя потоками.

В10. Как потоки распределяются в стеке и куче памяти?

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

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

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

  1. Многопоточность Интервью Вопросы
  2. Интервью с сервлетами Java
  3. JSP Интервью Вопросы
  4. QlikView Интервью Вопросы
  5. Руководство по вопросам интервью с сервлетами