Вступ Питання та відповіді щодо інтерв'ю Java щодо багатопотокової роботи

Перш ніж перейти до питань інтерв'ю Java на Multithreading, давайте обговоримо дещо про деякі факти з багатопотокової читання.

№1 - Отже, ми повинні спочатку знати, що таке нитка?

Саме найменша одиниця обробки певної роботи називається ниткою. Це легкий за своєю природою такий простий у використанні. Тепер нам спадає на думку, що для того, щоб нам це було потрібно, для багатозадачності використовується багатопоточність. Багатозадачність також може бути досягнуто іншим способом, і це називається багатопроцесорним процесом.

Однак багатопотокова редакція є більш популярною, і її ефективніше використовувати для багатопроцесорної обробки, оскільки потоки мають властивості, що вона використовує спільну область пам’яті, тоді як у випадку багатопроцесорної роботи вона споживає багато пам’яті та інших ресурсів, які не є ефективними.

Тому процес виконання декількох потоків одночасно для виконання певної роботи називається багатопоточним.

Деякі переваги використання багатопотокового:

  • Нитки працюють незалежними, тому вони не залежать від інших операцій, що відбуваються в системах, і тому можливо виконувати кілька операцій одночасно.
  • Витрата часу менша при використанні багатопотокової, оскільки багато операцій можна виконувати одночасно.
  • Нитки є незалежними, як уже обговорювалося, тому виняток, що відбувається в одній нитці, не заважатиме операціям інших потоків.
  • Вартість комунікацій між двома потоками низька.

Досягнути багатозадачності можна двома способами:

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

ПРИМІТКА. Коли ми обговорюємо багатопотоковість, ми зупинимось на багатозадачності на основі потоків.

Життєвий цикл теми:

  • Нові
  • Виконується
  • Біг
  • Не запускається (заблоковано)
  • Припинено

ПРИМІТКА. Для ознайомлення та кращого розуміння уважно перегляньте наведене нижче зображення.

№2 - Як створюються нитки?

Тепер це найважливіший і перший пункт, за допомогою якого ми можемо створити нитку. Існує два способи створення ниток, які обговорюються нижче:

  • Розширивши клас теми
  • Реалізуючи інтерфейс Runnable

ПРИМІТКА:

Коли створено новий потік, виконуються наступні завдання:

  1. У новому стеку викликів буде створено нитку.
  2. Потік змінює свій стан з New на 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, тоді протектор не буде створений у новому стеку викликів оскільки він не буде ідентифікований як Нитка.

Отже, щоб визначити його як Thread, ми повинні передати екземпляр класу, де ми реалізували Runnable Interface, як аргумент конструктору класу Thread, і тоді нам доведеться викликати метод start ().

Планування теми:

Як всі вони знають, що графік означає виконати план завдання в певний час.

Планування потоків - це аналогічний механізм планування певного потоку, який підтримує деякі протоколи. Існує два різних способи, за допомогою яких планування потоків працює на Java.

  • Попереднє планування
  • Час нарізки.

Попереднє планування:

JMV вирішує завдання з найвищим пріоритетом і починає виконання до тих пір, поки воно не вступить у стан очікування чи мертвих ситуацій або не з’явиться завдання більш високого пріоритету.

Час нарізки:

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

Тепер, якщо ви шукаєте роботу, пов’язану з Java Multithreading, тоді вам потрібно підготуватися до запитань про інтерв'ю Java 2018 щодо багатопотокової роботи. Це правда, що кожне інтерв'ю відрізняється за різними профілями роботи. Тут ми підготували важливі запитання та відповіді щодо інтерв'ю Java, які допоможуть вам досягти успіху в інтерв'ю.

У цій статті 2018 року щодо інтерв'ю Java у багатопотоковій статті ми представимо 10 найважливіших та найчастіше заданих питань щодо інтерв'ю Java щодо багатопотокової роботи. Ці питання щодо інтерв'ю поділяються на дві частини:

Частина 1 - Питання інтерв'ю Java щодо багатопотокової роботи (основні)

Ця перша частина стосується основних питань інтерв'ю Java та відповідей на багатопотоковість.

Q1. Розрізняти процес і нитку?

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

Q2. Розмежувати між темою користувача та теми демона?

Відповідь:
Нитка, створена в java, називається User Thread. Нитка Демона завжди працює на задньому плані, і її повний життєвий цикл залежить від головної нитки. Демонова нитка, що працює у фоновому режимі, не завадить JVM закінчити її. Дочірня нитка, створена з нитки демона, також буде ниткою демона.

Перейдемо до наступних питань інтерв'ю Java щодо багатопотокової роботи.

Q3. Інший спосіб створення теми в Java?

Відповідь:
Нитки в Java можна створити двома способами:

  • За допомогою розширення класу ниток.
  • Реалізуючи Runnable Interface.

Q4. Який життєвий цикл Нитки?

Відповідь:
Це поширені питання щодо інтерв'ю Java щодо багатопотокових запитань, задані в інтерв'ю. Нижче наведено життєвий цикл теми:

  • Нові
  • Виконується.
  • Біг.
  • Заблоковано.
  • Припинено.

Q5. Що станеться, якщо ми викличемо метод run () класу Thread?

Відповідь:
Виклик методу run () безпосередньо скомпілює та виконає програму, але та сама програма не буде розглядатися як Thread, оскільки не буде створено новий стек викликів, і програма розпочне виконання у тому самому стеку викликів, де працює основний.

Для створення теми, яка повинна працювати з новим стеком викликів, слід використовувати метод start () класу Thread.

Частина 2 - Питання інтерв'ю Java щодо багатопотокової роботи (розширено)

Давайте тепер подивимося на розширені питання інтерв'ю Java та відповіді на багатопотоковість.

Q6. Чи можемо ми призупинити виконання теми в певний час?

Відповідь:
Так, цього можна досягти в java, викликаючи сон () класу Thread. Метод Sleep () також приймає аргумент, який вказує час у мілісекундах.

Q7. Як ми можемо досягти планування потоку в java?

Відповідь:
Так, можливе планування потоків у java. Нитки в Java можуть бути заплановані двома способами, тобто тимчасове відсікання та попереднє планування.

Перейдемо до наступних питань інтерв'ю Java щодо багатопотокової роботи.

Q8. Чи можна запускати нитку двічі?

Відповідь:
Ні, нитку не можна запускати двічі. Якщо ми спробуємо запустити нитку двічі, вона викине "java.lang.IllegalThreadStateException".

Q9. Що таке гак відключення в Java?

Відповідь:
Це найпопулярніші питання інтерв'ю Java щодо багатопотокових запитань, задані в інтерв'ю. Гак відключення - це механізм, який використовується для очищення ресурсів, коли JVM вимикається нормально або різко.

Q10. Що є летючим?

Відповідь:
Леткі - це ключове слово в java, і його можна використовувати зі змінними. Якщо змінна оголошена мінливою, всі потоки будуть читати значення тієї самої змінної з основної пам'яті, а не з кешу, таким чином, це запобігає зчитці помилок, коли кілька потоків використовують одну і ту ж змінну в своїх операціях.

Рекомендовані статті

Це було керівництвом до списку питань щодо інтерв'ю Java та відповідей на багатопотоковість, щоб кандидат міг легко розбити ці питання щодо інтерв'ю Java на багатопотоковому читанні. Тут, у цій публікації, ми вивчили головні питання інтерв'ю Java щодо багатопотокової роботи, які часто задаються в інтерв'ю. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Структура даних Питання щодо інтерв'ю Java
  2. На жаль, питання щодо інтерв'ю Java
  3. Питання для багатопотокових інтерв'ю на Java
  4. Питання інтерв'ю для тестування Java