Multitreading in Java | Wyjaśnione

Multitreading in Java | Wyjaśnione
Java zapewnia funkcję o nazwie Multititreading, która umożliwia jednoczesne wykonywanie wielu wątków, w wyniku czego poprawia wykorzystanie procesora, udostępnianie zasobów, reakcję użytkownika i tak dalej. Multitreading jest często używany, ponieważ wątki wykorzystują obszar pamięci współdzielonej, a zatem nie ma potrzeby przydzielenia oddzielnej pamięci do żadnego wątku, w konsekwencji zapisuje pamięć i wykonuje szybkie wykonywanie. Najczęstsze rzeczywiste przypadki użycia wielowątkowości obejmują gry komputerowe, animacje i tak dalej.

Ten zapis przedstawia pełny przewodnik wielowarstwowy w Javie i dla głębokiego zrozumienia obejmie następujące pojęcia:

  • Co to jest multitreading w Javie
  • Dlaczego wielowątkowe jest ważne w Javie
  • Cykl życia wątków w Javie
  • Metody budowy Java do wielowy
  • Praktyczne wdrożenie multitreading w Javie

Więc zacznijmy!

Co to jest multitreading

Jest to proces, który pozwala nam wykonywać co najmniej dwa wątki jednocześnie i jest również określany jako współbieżność w Javie. Multitreading Java maksymalizuje wykorzystanie procesora, gdy działa w każdym wątku równolegle. Ponadto zapisuje pamięć, jak w wielowym okresie.

Dlaczego wielowątkowe jest ważne w Javie

Multitreading zapewnia szeroki zakres funkcji, a znaczenie multitreading Java można ocenić na podstawie poniżej listy:

  • Java MultitHreading umożliwia udostępnianie zasobów w ramach procesu można udostępniać wiele zasobów, takich jak kod, pamięć, pliki, dane i tak dalej.
  • Wątki są niezależne Dlatego wyjątki, które wystąpiły w jednym wątku, nie wpłynęłyby na wydajność innych.
  • MultitReading in Java umożliwia uruchomienie programu, nawet jeśli określony element programu jest z jakiegoś powodu lub wykonywanie długiego zadania/operacji.
  • Oszczędza czas, ponieważ wiele zadań/operacji można wykonywać jednocześnie.

Wymieniono tutaj tylko kilka funkcji, jednak istnieje wiele innych, jak skalowalność, opłacalność itp. które pokazują dominację wielowy.

Cykl życia wątków w Javie

Na razie dowiedzieliśmy się, co jest wielowątkowe i dlaczego jest to tak ważne w Javie? Teraz dowiemy się o cyklu życia wątku, który składa się z różnych stanów, jak wymieniono poniżej:

Nowy: W tym stanie wątek jest inicjowany/tworzony za pomocą "Nitka" klasa lub „Runnable” interfejs. Pozostaje w tym stanie, dopóki program nie uruchomi/zainicjuje wątku.

Runnable: W tym stanie instancja wątku zostanie wywołana przy użyciu wbudowanej metody start (), a wątek pozostaje w stanie Runnable.

Działanie: W tym stanie wątek rozpoczyna wykonanie.

Czekanie: W tej fazie wątek przechodzi do tymczasowo nieaktywnego stanu, co oznacza, że ​​albo wątek śpi, czeka, albo w stanie zablokowanym.

Zakończone/martwe: Wątek wchodzi w ten stan, gdy wystąpi wyjątek lub jeśli wątek zakończy wykonanie/przetwarzanie.

Metody budowy Java do wielowy

Istnieje lista predefiniowanych metod Java, które można zastosować w wątkach, aby osiągnąć różne funkcje. Niektóre często stosowane metody są wymienione w poniżej podanej tabeli:

Nazwa metody Opis
początek() Służy do rozpoczęcia wykonania wątku.
uruchomić() wykonuje określone działanie dla wątku.
getName () Zwraca nazwę wątku.
dawać () Zatrzymuje bieżący wątek i pozwala innym wykonywać.
SetPriority (int newpriority) Określa priorytet wątku.
getpriority () Zwraca priorytet wątku.
Sen (int milisekund) Śpi wątek przez określony okres.
getId () Zwraca identyfikator wątku.

Praktyczne wdrożenie multitreading w Javie

Teraz nadszedł czas, aby zrozumieć koncepcję multitreadingu Java za pomocą praktycznej implementacji. Rozważymy więc przykład, w którym będziemy wykonywać multitreading i wykorzystamy niektóre z wyżej wymienionych wbudowanych metod.

Przykład

W tym przykładzie wykonamy multitReading, wdrażając interfejs Runnable:

Klasa publiczna MultitHreadingExample implementuje Runnable
@Nadpisanie
public void run ()

public static void main (string [] args)
Wątek ThreadObj1 = nowy wątek („wątek1”);
Thread ThreadObJ2 = nowy wątek („wątek2”);
ThreadObj1.początek();
ThreadObj2.początek();
System.na zewnątrz.println („Nazwa pierwszego wątku:” + Threadobj1.getName ());
System.na zewnątrz.println („Nazwa drugiego wątku:” + Threadobj2.getName ());

W powyższym fragmencie kodu implementujemy interfejs Java Runnable, aw klasie używamy @Nadpisanie adnotacja, która pokazuje, że „MultiTHReadingExample” zastępuje uruchomić() Metoda interfejsu Runnable. Następnie tworzymy wiele wątków i rozpoczynamy wykonanie wątku za pomocą początek() metoda. Wreszcie, otrzymujemy nazwy wątku za pomocą getName () Metoda i wydrukuj je, jak pokazano na poniższym fragmencie:

To weryfikuje działanie wielokrotności w Javie.

W powyższym przykładzie wykonywamy multitReading, wdrażając Runnable interfejs. Możemy jednak również wykonywać multitreading, rozszerzając predefiniowane Nitka klasa, jak pokazano w poniższym fragmencie:

Klasa publiczna MultitHreadingExample rozszerza wątek

Rozszerzając klasę wątków, możesz skorzystać z funkcji predefiniowanych metod Java.

Wniosek

Wielowątkowość umożliwia jednoczesne wykonywanie dwóch lub więcej wątków, które maksymalizują wykorzystanie procesora, oszczędza czas, pamięć itp. MultitReading można wykonać, rozszerzając lub wdrażając odpowiednio klasę wątków lub interfejs Runnable. Różne wbudowane metody klasy wątków i interfejsu Runnable mogą być używane w multitemreading do wykonywania różnych funkcji, takich jak zatrzymanie bieżącego wątku i umożliwienie wykonywania innych wątków, określając priorytet wątków i tak dalej.
Ten zapis wyjaśnia różne aspekty multitreading, takie jak to, co jest multitrowe, jego znaczenie, cykl życia, metody i praktyczne wdrożenie.