Въведение Въпроси и отговори за интервю на Java за многопоточност

Преди да преминем към въпросите за интервю с Java на Multithreading, нека обсъдим нещо за някои факти за многопоточността.

# 1 - Значи първо трябва да знаем каква е нишката?

Това е най-малката единица за обработка на определено произведение се нарича нишка. Той е лек в природата, толкова лесен за използване. Сега ни идва наум, че защо трябва да се нуждаем от него, многопоточността се използва за постигане на многозадачност. Многозадачността може да бъде постигната и по друг начин и тя е известна като Мултипроцесиране.

Въпреки това, многопоточността е по-популярна и е ефективна за използване при мултипроцесора, тъй като нишките имат свойства, че тя използва споделена зона на паметта, докато в случай на многопроизводство, тя изразходва много памет и други ресурси, което не е ефективно.

Така процесът на изпълнение на няколко нишки едновременно, за да се извърши някаква работа, се нарича като многопоточност.

Някои предимства на използването на многопоточна работа:

  • Нишките работят независими, така че не зависи от други операции, които се извършват в системите и по този начин е възможно да се извършват няколко операции едновременно.
  • Консумацията на време е по-малка с използването на многопоточност, тъй като много операции могат да се извършват едновременно.
  • Нишките са независими, както вече беше обсъдено, така че възниква изключение в една нишка няма да пречи на операциите на други нишки.
  • Разходите за комуникация между две нишки са ниски.

Ние можем да постигнем многозадачност по следните два начина:

  • Многозадачен процес (мултипроцесово)
  • Многозадачност на базата на нишки (многопоточност)

ЗАБЕЛЕЖКА: Докато обсъждаме многопоточността, така ще се съсредоточим върху многозадачността, базирана на нишки.

Жизнен цикъл на нишката:

  • нов
  • Изпълнима
  • Работещи
  • Не може да се изпълнява (блокиран)
  • Прекратен

ЗАБЕЛЕЖКА: За справка и по-добро разбиране внимателно преминете през изображението по-долу.

# 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 г. относно Multithreading. Вярно е, че всяко интервю е различно според различните профили на работа. Тук сме подготвили важните въпроси за отговори на Java за интервю и отговори на Multithreading, които ще ви помогнат да постигнете успех в интервюто си.

В тази статия на въпросите за интервю на Java за многоредовото четене през 2018 г. ще ви представим 10 най-важни и често задавани въпроси за интервю на Java относно многоредовото четене. Тези въпроси за интервю са разделени на две части, както следва:

Част 1 - Въпроси за интервю на Java за многопоточност (основни)

Тази първа част обхваща основните въпроси за интервю за Java и отговори на многоредовото четене.

Q1. Разграничавате между Process и Thread?

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

Q2. Разграничете между темата на потребителя и темата на демон?

Отговор:
Нишка, създадена в java, се нарича потребителска нишка. A Daemon Thread винаги работи на заден план и пълният му жизнен цикъл зависи от основната нишка. Демонова нишка, която работи във фонов режим, няма да попречи на JVM да го прекрати. Детската нишка, създадена от нишка на демон, също ще бъде нишка на демон.

Нека преминем към следващите въпроси за интервю на Java за многопоточност.

Q3. Различният начин на създаване на тема в Java?

Отговор:
Нишките в Java могат да бъдат създадени по два начина:

  • Чрез разширяване на класа на нишката.
  • Чрез прилагане на Runnable интерфейс.

Q4. Какъв е жизненият цикъл на нишката?

Отговор:
Това са често срещаните въпроси за интервю на Java за многоредовото четене, зададени в интервю. Следват жизнения цикъл на нишката:

  • нов
  • Изпълнима.
  • Работещи.
  • Блокирани.
  • Прекратен.

Q5. Какво се случва, ако извикаме метод run () на клас Thread?

Отговор:
Извикването на метода run () директно ще компилира и изпълни програмата успешно, но същата програма няма да се третира като Thread, тъй като няма да бъде създаден нов стек за повиквания и програмата стартира изпълнението си в същия стек на повикване, където се изпълнява основната.

За да създадете Thread, който трябва да работи с нов стек за повиквания, трябва да използвате метода start () на клас Thread.

Част 2 - Въпроси за интервю с Java за многопоточност (за напреднали)

Нека сега да разгледаме разширените въпроси за интервю за Java и отговори на многопоточната работа.

Q6. Можем ли да спрем изпълнението на Тема в определено време?

Отговор:
Да, това може да се постигне в java, като се извика sleep () на класа Thread. Методът Sleep () също взема аргумент, който показва времето в милисекунди.

Q7. Как можем да постигнем планиране на конци в Java?

Отговор:
Да, планирането на нишки в Java е възможно. Нишките в Java могат да бъдат планирани по два начина, т.е. Време нарязване и Предварително планиране.

Нека преминем към следващите въпроси за интервю на Java за многопоточност.

Q8. Може ли нишката да се стартира два пъти?

Отговор:
Не, нишката не може да се стартира два пъти. Ако се опитаме да стартираме темата два пъти, тя ще хвърли „java.lang.IllegalThreadStateException“.

Q9. Какво е кука за изключване в Java?

Отговор:
Това са най-популярните въпроси за интервю на Java за многоредовото четене, зададени в интервю. Кука за изключване е механизъм, който се използва за почистване на ресурси, когато JVM се изключва нормално или рязко.

Q10. Какво е летливо?

Отговор:
Летливият е ключова дума в Java и може да се използва с променливи. Ако променлива е декларирана като непостоянна, всички нишки ще прочетат стойността на една и съща променлива от основната памет, а не от кеша, като по този начин тя предотвратява четенето на грешки, когато множество нишки използват една и съща променлива в своите операции.

Препоръчителни статии

Това е ръководство за списъка на въпросите за интервю на Java и отговорите на Multithreading, така че кандидатът да може лесно да прекъсне тези въпроси за интервю с Java на Multithreading. Тук, в тази публикация, ние проучихме най-добрите въпроси за интервю на Java относно Multithreading, които често се задават в интервюта. Можете също да разгледате следните статии, за да научите повече -

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