Różnica Między Runnable A Thread

Spisu treści:

Różnica Między Runnable A Thread
Różnica Między Runnable A Thread

Wideo: Różnica Między Runnable A Thread

Wideo: Różnica Między Runnable A Thread
Wideo: Thread и Runnable. Java Professional. Урок 13 2024, Listopad
Anonim

Kluczowa różnica - Runnable vs Thread

Wykonywany program jest nazywany procesem. Proces można podzielić na wiele podprocesów. Na przykład Microsoft Word to proces. Jednocześnie sprawdza błędy ortograficzne i gramatyczne. To jest podproces. Te podprocesy są nazywane wątkami. Wielowątkowość to proces wykonywania wielu wątków jednocześnie. Aplikacje wielowątkowe można budować przy użyciu różnych języków programowania. Runnable i Thread są powiązane z programowaniem w języku Java. W Javie istnieją dwie metody tworzenia wątku poprzez implementację interfejsu Runnable lub rozszerzenie klasy Thread. Podczas implementacji Runnable wiele wątków może współużytkować ten sam obiekt wątku, podczas gdy w klasie Extending Thread każdy wątek ma powiązany z nim unikalny obiekt. To jest kluczowa różnica między Runnable i Thread.

ZAWARTOŚĆ

1. Przegląd i kluczowe różnice

2. Co można uruchomić

3. Co to jest wątek

4. Podobieństwa między Runnable i Thread

5. Porównanie obok siebie - Runnable vs Thread w formie tabelarycznej

6. Podsumowanie

Co to jest Runnable?

Wątek przechodzi przez niektóre stany. „Nowy” to początek cyklu życia nici. Po wywołaniu metody start () nowego wątku staje się on działający. Jeśli harmonogram wątków wybierze wątek, przechodzi do stanu działania. Wątek czeka na stan, jeśli ten wątek oczekuje na wykonanie zadania przez inny wątek. Po zakończeniu pracy wątek przechodzi do stanu zakończenia.

Wątek można zaimplementować za pomocą interfejsu Runnable. Zapoznaj się z poniższym programem.

Różnica między Runnable a Thread
Różnica między Runnable a Thread

Rysunek 01: Program Java do tworzenia wątków przy użyciu interfejsu Runnable

Zgodnie z powyższym programem klasa Runnable Demo implementuje interfejs Runnable. Metoda run () znajduje się w klasie implementującej interfejs Runnable. Jest to punkt wejścia dla wątku. Logika znajduje się w metodzie run (). W programie głównym wątek jest tworzony przez zdefiniowanie obiektu, który został utworzony z klasy Runnable Demo. To jest t1. Metoda start () jest wywoływana przy użyciu t1.

Zapoznaj się z poniższym programem.

Różnica między Runnable i Thread Figure 02
Różnica między Runnable i Thread Figure 02

Rysunek 02: Program Java do tworzenia wątku wykonującego pętlę poprzez implementację interfejsu Runnable

Zgodnie z powyższym przykładem, klasa Runnable Demo implementuje interfejs Runnable. Logika do wykonania przy użyciu wątku jest zapisana w metodzie run (). W programie głównym wątek jest tworzony przez zdefiniowanie obiektu, który został utworzony z klasy Runnable Demo. To jest t1. Następnie wywoływana jest metoda start () przy użyciu t1.

Co to jest wątek?

Inną metodą tworzenia wątku jest rozszerzenie klasy Thread. Składa się z trzech kroków. Najpierw należy zadeklarować klasę jako rozszerzenie klasy Thread. Następnie należy napisać metodę run (). Zawiera sekwencję kroków, które powinien wykonać wątek. Na koniec tworzony jest obiekt wątku i wywoływana jest metoda start () w celu zainicjowania wykonania wątku. Zapoznaj się z poniższym programem.

Różnica między Runnable i Thread Figure 03
Różnica między Runnable i Thread Figure 03

Rysunek 03: Program Java rozszerzający klasę Thread

Zgodnie z powyższym programem klasa MyThread rozszerza klasę Thread. Zastępuje metodę run. Metoda run () zawiera logikę, która ma zostać wykonana przez wątek. Jest to punkt wejścia do wątku. Następnie tworzony jest obiekt wątku. To jest wątek1. Wątek jest uruchamiany przy użyciu metody start (). Wykona wywołanie metody run ().

Przykładowy program dwóch klas rozszerzających klasę Thread jest następujący.

Kluczowa różnica między Runnable i Thread
Kluczowa różnica między Runnable i Thread

Rysunek 04: Program Java z dwiema klasami rozszerzającymi klasę Thread

Zgodnie z powyższym programem, zarówno klasa A, jak i B są rozszerzeniem klasy Thread. Obie klasy mają swoją implementację metody run (). Głównym wątkiem jest wykonanie metody main (). Zanim główny wątek umrze, tworzy i uruchamia wątek 1 i wątek 2. Zanim główny wątek osiągnął koniec głównej metody, trzy wątki biegną równolegle. Nie ma określonej kolejności, w jakiej wątki generują dane wyjściowe. Po uruchomieniu wątku trudno jest zdecydować, w jakiej kolejności będzie on wykonywał. Działają niezależnie.

Jakie są podobieństwa między Runnable a Thread?

Oba używają do tworzenia wątku w Javie

Jaka jest różnica między Runnable a Thread?

Porównaj środek artykułu przed tabelą

Runnable vs Thread

Runnable to interfejs w Javie służący do tworzenia wątku, który umożliwia wielu wątkom współużytkowanie tego samego obiektu wątku. Wątek jest klasą w Javie służącą do tworzenia wątku, w którym każdy wątek ma powiązany z nim unikalny obiekt.
Pamięć
W Runnable wiele wątków współużytkuje ten sam obiekt, więc wymagają mniej pamięci. W klasie Thread każdy wątek tworzy unikalny obiekt, dlatego wymaga większej ilości pamięci.
Rozszerzanie zdolności
Po zaimplementowaniu interfejsu Runnable może rozszerzyć klasę. W Javie nie jest obsługiwane wielokrotne dziedziczenie. Po rozszerzeniu klasy Thread nie może rozszerzyć żadnej innej klasy.
Konserwowalność kodu
Funkcjonalny interfejs sprawia, że kod jest łatwiejszy w utrzymaniu. W klasie Thread konserwacja jest czasochłonna.

Podsumowanie - Runnable vs Thread

Proces jest podzielony na wiele podprocesów w celu wykonywania wielu zadań w tym samym czasie. Te podprocesy są nazywane wątkami. Tworzenie wystąpienia wątku można wykonać, implementując interfejs Runnable lub rozszerzając klasę wątku. Klasę Thread można łatwo rozszerzyć, ale nie jest to lepsza praktyka programowania obiektowego. Podczas implementacji Runnable wiele wątków może współużytkować ten sam obiekt wątku, podczas gdy w rozszerzaniu klasy Thread każdy wątek ma powiązany z nim unikalny obiekt. To jest różnica między Runnable i Thread. W klasie Thread tworzenie wielu obiektów może zajmować więcej pamięci.

Pobierz plik PDF Runnable vs Thread

Możesz pobrać wersję PDF tego artykułu i używać jej w trybie offline, zgodnie z notą cytowania. Pobierz wersję PDF tutaj Różnica między Runnable a Thread

Zalecane: