viladamat.net

Home / Technologia / Informatyka / Programowanie / Różnica między Runnable a Thread

Różnica między Runnable a Thread

25 stycznia 2018 Wysłane przez Lithmee

Kluczowa różnica – Runnable vs Thread
 

Wykonywany program nazywany jest 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ą znane jako wątki. Wielowątkowość to proces jednoczesnego wykonywania wielu wątków. Aplikacje wątkowe można budować przy użyciu różnych języków programowania. Runnable i Thread są powiązane z programowaniem Java. W Javie istnieją dwie metody tworzenia wątków poprzez implementację interfejsu Runnable lub rozszerzenie klasy Thread. Podczas implementacji Runnable, wiele wątków może współdzielić ten sam obiekt wątku, podczas gdy w klasie Extending Thread każdy wątek ma skojarzony z nim unikalny obiekt . To jest kluczowa różnica między Runnable a Thread.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest Runnable?
3. Co to jest wątek?
4. Podobieństwa między Runnable a Thread
5. Porównanie obok siebie – Runnable vs Thread w formie tabelarycznej
6. Podsumowanie

Co można uruchomić?

Wątek przechodzi przez niektóre stany. „Nowe” to początek cyklu życia wątku. Po wywołaniu metody start() nowego wątku staje się on możliwy do uruchomienia. Jeśli harmonogram wątków wybierze wątek, przechodzi do stanu uruchomionego. Wątek czeka na stan, jeśli ten wątek czeka 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.

Difference Between Runnable and Thread

Rysunek 01: Program Java do tworzenia wątków za pomocą interfejsu Runnable

Zgodnie z powyższym programem klasa Runnable Demo implementuje interfejs Runnable. Metoda run() znajduje się wewnątrz klasy, która implementuje interfejs Runnable. Jest to punkt wejścia dla wątku. Logika znajduje się w metodzie run(). W głównym programie wątek jest tworzony poprzez 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.

Difference Between Runnable and Thread_Figure 02

Rysunek 02: Program Java do tworzenia wątku w celu wykonania pętli poprzez implementację interfejsu Runnable

Zgodnie z powyższym przykładem klasa Runnable Demo implementuje interfejs Runnable. Logika do wykonania za pomocą wątku jest napisana w metodzie run(). W głównym programie wątek jest tworzony poprzez 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. Pierwszym z nich jest zadeklarowanie klasy jako rozszerzenia klasy Thread. Następnie należy napisać metodę run(). Zawiera sekwencję kroków, które wątek powinien wykonać. 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.

Difference Between Runnable and Thread_Figure 03

Rysunek 03: Program Java rozszerzający klasę Thread

Zgodnie z powyższym programem, klasa MyThread jest rozszerzeniem klasy Thread. Zastępuje metodę run. Metoda run() zawiera logikę do wykonania przez wątek. Jest to punkt wejścia do wątku. Następnie tworzony jest obiekt wątku. To jest thread1. 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.

Key Difference Between Runnable and Thread

Rysunek 04: Program Java z dwiema klasami, które rozszerzają klasę Thread

Zgodnie z powyższym programem, zarówno klasa A, jak i B rozszerzają klasę 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 thread1 i thread2. Zanim wątek główny osiągnie koniec metody głównej, trzy wątki działają równolegle. Nie ma określonej kolejności, w jakiej wątki dają wyjście. Po uruchomieniu wątku trudno jest zdecydować, w jakiej kolejności będą wykonywać. Działają niezależnie.

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

  • Oba są używane do tworzenia wątków w Javie.

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

Uruchamialny a wątek

Runnable to interfejs w Javie do tworzenia wątku, który pozwala wielu wątkom współużytkować ten sam obiekt wątku. Wątek jest klasą w Javie, która tworzy wątek, w którym każdy wątek ma skojarzony z nim unikalny obiekt.
Pamięć
W Runnable wiele wątków współużytkuje ten sam obiekt, więc wymaga mniej pamięci. W klasie Thread każdy wątek tworzy unikalny obiekt, dlatego wymaga więcej pamięci.
Rozszerzanie zdolności
Po zaimplementowaniu interfejsu Runnable może rozszerzyć klasę. Dziedziczenie wielokrotne nie jest obsługiwane w Javie. Po rozszerzeniu klasy Thread nie może rozszerzyć żadnej innej klasy.
Utrzymanie kodu
Uruchamialny interfejs sprawia, że ​​kod jest łatwiejszy w utrzymaniu. W klasie Thread utrzymanie jest czasochłonne.

Podsumowanie – Runnable vs Thread

Proces jest podzielony na wiele podprocesów, aby wykonywać wiele zadań jednocześnie. Te podprocesy są znane jako wątki. Tworzenie wystąpienia wątku można wykonać, implementując interfejs Runnable lub rozszerzając klasę Thread. Łatwo jest rozszerzyć klasę Thread, ale nie jest to lepsza praktyka programowania obiektowego . Podczas implementacji Runnable, wiele wątków może współdzielić ten sam obiekt wątku, podczas gdy w rozszerzeniu klasy Thread każdy wątek ma skojarzony z nim unikalny obiekt. To jest różnica między Runnable a Thread. W klasie Thread tworzenie wielu obiektów może zużywać więcej pamięci.

Pobierz plik PDF Runnable vs Thread

Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z notatką cytowania. Proszę pobrać wersję PDF tutaj Różnica między Runnable a Thread

Referencja:

1.tutorialspoint.com. „Wielowątkowość Java”. Punkt , dostępny tutaj
2. Pramodbablad. „Rozszerza wątek Vs implementuje Runnable w Javie”. Java Concept of the Day, 11 listopada 2016. Dostępne tutaj
3.Sposoby tworzenia wątków w wielowątkowości Java | Podstawowy samouczek Java | Studiuj dziś wieczorem. Dostępny tutaj

Powiązane posty:

Difference Between Process and Thread Różnica między procesem a wątkiem Różnica między semaforem a muteksem Różnica między tablicami a połączonymi listami Różnica między testowaniem konwencjonalnym a testowaniem obiektowym Różnica między JAR a WAR

Filed Under: Programowanie Oznaczone tagiem: Porównaj Runnable i Thread , Runnable , Runnable and Thread Differences , Runnable and wątki podobieństwa , Runnable Code , Runnable Definition , Runnable Memory , Runnable Procedure , Runnable vs Thread , wątek , Thread Code , Definicja wątku , Pamięć wątku , Procedura gwintowania

O autorze: Lithmee

Lithmee Mandula jest absolwentką BEng (z wyróżnieniem) inżynierii systemów komputerowych. Obecnie jest w trakcie studiów magisterskich z informatyki. Jej zainteresowania pisarskie i badawcze obejmują programowanie, naukę o danych i systemy komputerowe.

Możesz polubić

Różnica między brzuchem a żołądkiem

Różnica między teorią autogenną a teorią endosymbiotyczną

Różnica między ogniwem paliwowym a baterią

Różnica między długością życia a oczekiwaną długością życia

Różnica między lobbingiem a rzecznictwem

Najnowsze posty

  • Jaka jest różnica między PCV13 a PPSV23?
  • Różnica między przedsiębiorcą a intraprzedsiębiorcą
  • Jaka jest różnica między krwiakiem opłucnowym a odmą opłucnową?
  • Jaka jest różnica między związkami międzymetalicznymi a stopami w roztworze stałym?
  • Jaka jest różnica między rytmem złączowym a idiokomorowym?
  • Jaka jest różnica między mięsem czerwonym a białym?

Copyright © 2021 Różnica między . Wszelkie prawa zastrzeżone. Warunki użytkowania i polityka prywatności: prawne .