Wprowadzenie Java Wywiad Pytania i odpowiedzi na temat wielowątkowości

Zanim przejdziemy do pytań do wywiadu Java dotyczących wielowątkowości, porozmawiajmy o kilku faktach na temat wielowątkowości.

# 1 - Więc najpierw powinniśmy wiedzieć, co to za wątek?

Jest to najmniejsza jednostka przetwarzania określonego dzieła nazywa się wątkiem. Jest lekki z natury, więc łatwy w użyciu. Teraz przychodzi nam do głowy, że dlaczego powinniśmy tego potrzebować, wielowątkowość jest wykorzystywana do osiągnięcia wielozadaniowości. Wielozadaniowość można również osiągnąć w inny sposób i jest ona znana jako wieloprocesowość.

Jednak wielowątkowość jest bardziej popularna i jest wydajniejsza w porównaniu do wieloprocesowego, ponieważ wątki mają właściwości polegające na tym, że wykorzystuje obszar pamięci współdzielonej, podczas gdy w przypadku wieloprocesowego zużywa dużo pamięci i innych nieefektywnych zasobów.

Tak więc proces wykonywania wielu wątków jednocześnie w celu wykonania pracy nazywany jest wielowątkowością.

Niektóre zalety korzystania z wielowątkowości:

  • Wątki działają niezależnie, więc są niezależne od innych operacji zachodzących w systemach, dzięki czemu możliwe jest wykonywanie wielu operacji jednocześnie.
  • Dzięki wielowątkowości zużycie czasu jest mniejsze, ponieważ wiele operacji można wykonać jednocześnie.
  • Wątki są niezależne, jak już wspomniano, więc wyjątek występuje w jednym wątku, nie będzie zakłócał działania innych wątków.
  • Koszt komunikacji między dwoma wątkami jest niski.

Wielozadaniowość możemy osiągnąć na dwa sposoby:

  • Wielozadaniowość oparta na procesach (wieloprocesowość)
  • Wielozadaniowość oparta na wątkach (wielowątkowość)

UWAGA: Gdy dyskutujemy o wielowątkowości, skupimy się na wielozadaniowości opartej na wątku.

Cykl życia wątku:

  • Nowy
  • Runnable
  • Bieganie
  • Nie można uruchomić (zablokowane)
  • Zakończony

UWAGA: Dla odniesienia i lepszego zrozumienia należy dokładnie zapoznać się z poniższym obrazem.

# 2 - Jak tworzone są wątki?

To jest najważniejszy i pierwszy punkt, w którym możemy utworzyć wątek. Istnieją dwa sposoby tworzenia wątków, które omówiono poniżej:

  • Rozszerzając klasę wątków
  • Wdrażając interfejs Runnable

UWAGA:

Po utworzeniu nowego wątku wykonywane są następujące zadania:

  1. W nowym stosie wywołań zostanie utworzony wątek.
  2. Wątek zmienia swój stan z Nowy na Runnable.
  3. Kiedy wątek zostanie uruchomiony, znajdzie metodę run (), a następnie wykona się.

PRZYKŁAD:

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

PRZYKŁAD:
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();
)
)

UWAGA: Proszę zwrócić uwagę na różnicę w powyższych dwóch przykładach. Główną różnicą w powyższych dwóch przykładach jest to, że jeśli nie rozszerzamy wątku, zamiast tego próbujemy utworzyć wątek poprzez implementację interfejsu Runnable i zaklasyfikować metodę start () do uruchomienia wątku, wówczas bieżnik nie zostanie utworzony w nowym stosie wywołań ponieważ nie zostanie zidentyfikowany jako wątek.

Aby więc zidentyfikować go jako Thread, musimy przekazać instancję klasy, w której zaimplementowaliśmy interfejs Runnable jako argument do konstruktora klasy Thread, a następnie musimy wywołać metodę start ().

Planowanie w wątku:

Jak wszyscy wiedzą, że harmonogram oznacza wykonanie zadania w określonym czasie.

Planowanie wątków jest podobnym mechanizmem szeregowania określonego wątku, który zachowuje niektóre protokoły. Istnieją dwa różne sposoby działania planowania wątków w Javie.

  • Planowanie wyprzedzające
  • Podział czasu.

Planowanie wyprzedzające:

JMV decyduje o zadaniu o najwyższym priorytecie i rozpoczyna wykonywanie, dopóki nie przejdzie w stan oczekiwania lub martwy albo nie powstanie zadanie o wyższym priorytecie.

Podział czasu:

JVM rozpoczyna wykonywanie określonego wątku przez określony czas, a następnie przenosi ten sam wątek do puli i wybiera inny wątek na podstawie priorytetu i innych czynników wykonania. Proces ten trwa, dopóki cały wątek nie zakończy procesu.

Teraz, jeśli szukasz pracy związanej z wielowątkowością Java, musisz przygotować się do pytań z wywiadu Java 2018 na temat wielowątkowości. Prawdą jest, że każda rozmowa kwalifikacyjna jest inna w zależności od profilu pracy. Tutaj przygotowaliśmy ważne pytania i odpowiedzi na wywiad Java na temat wielowątkowości, które pomogą Ci odnieść sukces w rozmowie.

W tym artykule na pytania do wywiadu Java na temat wielowątkowości w 2018 roku zaprezentujemy 10 najważniejszych i najczęściej zadawanych pytań na wywiad Java na temat wielowątkowości. Te pytania do rozmowy kwalifikacyjnej są podzielone na dwie części:

Część 1 - Pytania do wywiadu Java na temat wielowątkowości (podstawowe)

Ta pierwsza część obejmuje podstawowe pytania i odpowiedzi dotyczące wywiadu Java dotyczące wielowątkowości.

Pytanie 1 Rozróżnić proces i wątek?

Odpowiedź:
Proces to program lub aplikacja, podczas gdy Wątek to pojedyncze zadanie do wykonania w ramach procesu. Wątek jest lekki, a proces jest ciężki. Wątek wymaga mniej, podczas gdy proces wymaga więcej zasobów, dlatego jest z natury określany jako mocno obciążony.

Q2 Rozróżnić wątek użytkownika od wątku demona?

Odpowiedź:
Wątek utworzony w Javie jest określany jako Wątek użytkownika. Wątek demona zawsze działa w tle, a jego pełny cykl życia zależy od głównego wątku. Wątek demona działający w tle nie uniemożliwi JVM jego zakończenia. Wątek potomny utworzony z wątku demona będzie również wątkiem demona.

Przejdźmy do następnych pytań do wywiadu Java dotyczących wielowątkowości.

Pytanie 3 Inny sposób tworzenia wątku w Javie?

Odpowiedź:
Wątki w Javie można tworzyć na dwa sposoby:

  • Rozszerzając klasę wątków.
  • Wdrażając Runnable Interface.

Pytanie 4 Jaki jest cykl życia wątku?

Odpowiedź:
Jest to typowe pytanie wywiadu Java dotyczące wielowątkowości zadawane podczas wywiadu. Oto cykl życia wątku:

  • Nowy
  • Runnable.
  • Bieganie.
  • Zablokowany.
  • Zakończony.

Pytanie 5 Co się stanie, jeśli wywołamy metodę run () klasy Thread?

Odpowiedź:
Wywołanie metody run () bezpośrednio skompiluje i uruchomi program pomyślnie, ale ten sam program nie będzie traktowany jako wątek, ponieważ nie zostanie utworzony nowy stos wywołań, a program rozpocznie wykonywanie w tym samym stosie wywołań, w którym działa main.

Aby utworzyć Wątek, który powinien działać z nowym stosem wywołań, należy użyć metody start () klasy Thread.

Część 2 - pytania do wywiadu Java na temat wielowątkowości (zaawansowane)

Przyjrzyjmy się teraz zaawansowanym pytaniom i odpowiedziom dotyczącym wywiadu Java na temat wielowątkowości.

Pytanie 6 Czy możemy wstrzymać wykonanie wątku w określonym czasie?

Odpowiedź:
Tak, można to osiągnąć w java, wywołując sleep () klasy Thread. Metoda Sleep () przyjmuje również argument wskazujący czas w milisekundach.

Pytanie 7 Jak możemy osiągnąć harmonogram wątku w Javie?

Odpowiedź:
Tak, planowanie wątków w Javie jest możliwe. Wątki w Javie można planować na dwa sposoby, tj. Dzielenie czasu i planowanie wyprzedzające.

Przejdźmy do następnych pytań do wywiadu Java dotyczących wielowątkowości.

Pytanie 8 Czy można rozpocząć wątek dwa razy?

Odpowiedź:
Nie, wątku nie można uruchomić dwa razy. Jeśli spróbujemy uruchomić wątek dwa razy, wygeneruje „java.lang.IllegalThreadStateException”.

Pytanie 9 Co to jest hak zamykania w Javie?

Odpowiedź:
To najpopularniejsze pytania dotyczące wywiadu Java dotyczące wielowątkowości zadawane w wywiadzie. Hak zamykania jest mechanizmem używanym do czyszczenia zasobów, gdy JVM zamyka się normalnie lub nagle.

P10 Co jest niestabilne?

Odpowiedź:
Lotne jest słowem kluczowym w Javie i może być używane ze zmiennymi. Jeśli zmienna zostanie zadeklarowana jako lotna, wszystkie wątki odczytają wartość tej samej zmiennej z pamięci głównej, a nie z pamięci podręcznej, co zapobiega odczytowi błędu, gdy wiele wątków używa tej samej zmiennej w swoich operacjach.

Polecane artykuły

Jest to przewodnik po liście pytań do wywiadu Java i odpowiedzi na temat wielowątkowości, dzięki czemu kandydat może łatwo zlikwidować pytania dotyczące wywiadu Java na temat wielowątkowości. W tym poście przeanalizowaliśmy najważniejsze pytania dotyczące wywiadu Java dotyczące wielowątkowości, o które często zadawane są w wywiadach. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Struktura danych Pytania do wywiadu Java
  2. Oops Java Interview Questions
  3. Pytania do wywiadu wielowątkowego w Javie
  4. Pytania do wywiadu testowego Java