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:
- W nowym stosie wywołań zostanie utworzony wątek.
- Wątek zmienia swój stan z Nowy na Runnable.
- 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 -
- Struktura danych Pytania do wywiadu Java
- Oops Java Interview Questions
- Pytania do wywiadu wielowątkowego w Javie
- Pytania do wywiadu testowego Java