Wprowadzenie do Java Wielowątkowy wywiad Wywiady Pytania i odpowiedzi

Java rozwija się obecnie dzięki niezależnej platformie. Można go uruchomić w dowolnym miejscu i dlatego jest szeroko stosowany w różnych nadchodzących technologiach. Aby być na to przygotowanym, wielowątkowość jest ważnym tematem, który koncentruje się na rozmowach kwalifikacyjnych. W końcu znalazłeś swoją wymarzoną pracę w Java Wielowątkowość, ale zastanawiasz się, jak złamać wywiad i co może być prawdopodobnym wielowątkowością Java Pytania do wywiadu. Każda rozmowa kwalifikacyjna jest inna, a zakres pracy również inny. Przejrzyjmy kilka ważnych pytań do wywiadu wielowątkowego Java, które można zadać podczas wywiadów wielowątkowych Java, które chcielibyście zrealizować.

Poniżej znajduje się najważniejsze pytania i odpowiedzi dotyczące wywiadu wielowątkowego Java

1.Co to jest wątek w JAVA i jak go wdrożyć?

Odpowiedź:
Wątek ułatwia wielozadaniowość i przetwarzanie w programie. Efektywnie wykorzystuje procesor i pomaga poprawić wydajność aplikacji. Java umożliwia użytkownikowi korzystanie z wielu wątków jednocześnie. Może działać równolegle z innymi programami bez żadnych zakłóceń. Pomaga to w skróceniu czasu na proces. Na przykład, jeśli wykonanie programu zajmuje 60 sekund, możemy użyć 6 wątków, które dadzą nam wynik w 10 sekund.

Java zapewnia dwa sposoby implementacji wątku w programie. interfejs java.lang.Runnable ma instancję java.lang. Wątek, który wymaga wykonania zadania przez instancję. Klasa Thread już implementuje Runnable, więc użytkownik może bezpośrednio przesłonić metodę run (), rozszerzając klasę Thread lub implementując interfejs Runnable.

2.Kiedy używać Runnable i kiedy używać Thread w Javie?

Odpowiedź:
Java nie obsługuje wielu spadków klasy, ale pozwala na implementację wielu interfejsów jednocześnie. Dlatego lepiej będzie wdrożyć Runnable niż rozszerzenie klasy Thread.

3. Jak odróżniasz wątek od procesu?

Odpowiedź:
Wątek jest podzbiorem procesu. W jednym procesie może być uruchomionych wiele wątków. Wątki mogą uruchamiać dowolną część procesu. Proces ma swój własny adres, w którym jest przechowywany, a wątek udostępnia adres procesu, który go utworzył. Tworzenie procesu jest gorączkowym procesem, a wątki można łatwo tworzyć. Wątek jest zwykle określany jako proces lekki. Komunikacja międzyprocesowa jest trudna, a wątki mogą łatwo komunikować się za pomocą Java metod wait () i notyfikacji (). Procesy są niezależne, dlatego wszelkie zmiany wprowadzone w procesie nie wpływają na procesy potomne. Przeciwnie, jeśli zmiany zostaną wprowadzone w wątku, istnieje możliwość, że mogą wpłynąć na inne wątki.

4. Dlaczego mówi się, że zachowanie wątku jest nieprzewidywalne?

Odpowiedź:
Powodem tego jest harmonogram wątków, który obsługuje wykonywanie wątków. Program planujący może mieć różną wydajność na różnych platformach Windows, UNIX, LINUX itp. Podczas wykonywania tego samego wątku może dawać różne wyniki na różnych platformach, a czasem nawet na tej samej platformie. Aby rozwiązać ten problem, użytkownik może utworzyć ten sam obiekt Runnable, utworzyć pętle run () w obu wątkach i uruchomić oba wątki razem. Najlepiej, jeśli planista powinien wybrać oba wątki razem i nie powinno to wpłynąć na wydajność, ale oba wątki wejdą w pętle anonimowo.

5. Co to jest zmienna zmienna w Javie i jakie jest jej znaczenie?

Odpowiedź:
Java ułatwia użytkownikowi udostępnianie zmiennych obecnych w różnych wątkach. Zmienna lotna działa jako specjalny modyfikator, którego można używać tylko w przypadku zmiennych. Ponieważ ta zmienna jest wspólna, nastąpiłyby z nią spójne zmiany. Wątek musi gwarantować, że ma wyłączny dostęp do tych zmiennych, a blokada jest zmuszona do wzajemnego wykluczenia zmiennych wspólnych. Zapewnia, że ​​zapis nastąpi przed jakimkolwiek późniejszym odczytem. Model pamięci Java zapewnia spójność tej zmiennej. Metody niestabilne nie mogą istnieć, ponieważ można je stosować tylko w postaci zmiennych.

6. Do czego służy zsynchronizowane słowo kluczowe? Jaka jest różnica między zsynchronizowanymi i niestabilnymi słowami kluczowymi?

Odpowiedź:
Zsynchronizowane słowo kluczowe jest używane, gdy celem jest uruchomienie tylko jednego wątku na raz w odpowiedniej sekcji kodu. Można go użyć do wyświetlenia czterech rodzajów różnych bloków, jak poniżej:

1) Metody instancji
2) Metody statyczne
3) Bloki kodu w metodach instancji
4) Bloki kodu w metodach statycznych

Można go zadeklarować jako:

Publiczny zsynchronizowany przykład void () ()

Różnica między lotnym i zsynchronizowanym słowem kluczowym polega na tym, że zsynchronizowany może być używany ze zmienną i metodami, podczas gdy niestabilny nie może być używany z metodami. Zmienne lotne nie są przechowywane w pamięci podręcznej, zmienne synchronizowane są przechowywane w pamięci podręcznej. Zmienna zmienna nigdy nie znajdzie się w impasie, ponieważ nie wymaga uzyskania blokady. W przypadku zmiennych zsynchronizowanych, jeśli nie zostaną wykonane poprawnie, może to zakończyć się impasem.

7. Dlaczego metody takie jak wait (), powiadomienie () i powiadomienie wszystkich () są obecne w klasie obiektów, a nie w klasie wątków?

Odpowiedź:
Klasa Object ma monitory, które pozwalają wątkowi blokować obiekt, podczas gdy Thread nie ma żadnych monitorów. Po wywołaniu którejkolwiek z powyższych metod czeka na zwolnienie obiektu przez inny wątek i powiadamia monitor, wywołując polecenie zawiadomienie () lub powiadomienie wszystkich (). Po wywołaniu metody replace () wykonuje zadanie powiadamiania wszystkich wątków oczekujących na zwolnienie obiektu. Monitor klasy obiektów sprawdza, czy obiekt jest dostępny, czy nie. Klasa wątków posiadająca te metody nie pomogłaby, ponieważ na obiekcie istnieje wiele wątków, a nie odwrotnie.

8. Wyjaśnij różnicę między metodami sleep () i wait ().

Odpowiedź:
1) Metoda sleep () jest wywoływana dla wątków, a nie obiektów. Metoda Wait () jest wywoływana na obiektach.
2) Po wywołaniu metody wait () monitor przenosi wątek z stanu uruchomionego do stanu oczekiwania. Gdy wątek czeka () na oczekiwanie (), może przejść do trybu uruchomieniowego tylko wtedy, gdy ma dla tego obiektu funkcję notify () lub notallall (). Po tym harmonogram zmienia stan. W metodzie sleep () stan jest zmieniany na oczekiwanie i powróci do trybu uruchomieniowego dopiero po upływie czasu uśpienia.
3) Metoda Wait () jest częścią klasy java.lang.Object, podczas gdy sleep () jest częścią klasy java.lang.Thread.
4) Funkcja Wait () jest zawsze używana z blokiem synchronicznym, ponieważ wymaga zablokowania obiektu, podczas gdy funkcja sleep () może być używana z zewnętrznego bloku synchronizowanego.

9. Jak wymusić uruchomienie wątku w Javie?

Odpowiedź:
W Javie wielowątkowość nie może wymuszać rozpoczęcia wątku. Tylko program do planowania wątków może kontrolować wątki i nie są one narażone na żadne API do kontroli.

10. Czy wątek pozostawia blokadę obiektu podczas wywoływania metod wait () i sleep ()?

Odpowiedź:
Gdy wątek jest w trybie sleep (), nie pozostawia blokady i przechodzi do stanu oczekiwania. Wątek czeka na zakończenie snu. Gdy używana jest metoda wait (), wątek opuszcza blokadę obiektu i przechodzi do stanu oczekiwania. Po wywołaniu powiadomienia () ponownie przechodzi w stan działania i nabywa blokadę.

Polecany artykuł

Jest to przewodnik po Liście pytań do wielowątkowego wywiadu Java i odpowiedzi, aby kandydat mógł łatwo przełamać te pytania dotyczące wielowątkowego wywiadu Java. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Java Developer Interview Questions - Jak złamać 7 najważniejszych pytań
  2. Kompleksowy przewodnik po tworzeniu aplikacji Java (Awesome Theory)
  3. Wywiad Maven Pytania i odpowiedzi | Najpopularniejsze i najczęściej zadawane pytania
  4. 10 zaawansowanych pytań do wywiadu AngularJS dla doświadczonych