Diferența cheie - Runnable vs Thread
Un program în execuție este cunoscut sub numele de proces. Procesul poate fi împărțit în mai multe subprocese. De exemplu, Microsoft Word este un proces. În același timp, verifică greșeala de ortografie și gramatica. Acesta este un subproces. Aceste subprocese sunt cunoscute sub numele de fire. Multithreading este procesul de executare simultană a mai multor fire. Aplicațiile cu fire pot fi construite folosind diferite limbaje de programare. Runnable și Thread sunt asociate cu programarea Java. Există două metode în Java pentru a crea un thread prin implementarea unei interfețe Runnable sau extinderea clasei Thread. La implementarea Runnable, multe fire pot partaja același obiect thread în timp ce în clasa Extending Thread, fiecare thread are un obiect unic asociat. Aceasta este diferența cheie între Runnable și Thread.
CUPRINS
1. Prezentare generală și diferența cheie
2. Ce este Runnable
3. Ce este Thread
4. Asemănări între Runnable și Thread
5. Comparare Side by Side - Runnable vs Thread în formă tabelară
6. Rezumat
Ce este Runnable?
Un fir trece prin unele stări. „Noul” este începutul ciclului de viață al firului. După ce metoda start () apelează la un nou fir, acesta devine rulabil. Dacă programatorul de fire selectează firul, acesta trece la starea de rulare. Firul așteaptă starea dacă firul respectiv așteaptă ca un alt fir să efectueze o sarcină. După ce firul finalizează lucrarea, acesta trece la starea de terminare.
Un thread poate fi implementat folosind interfața Runnable. Consultați programul de mai jos.
Figura 01: Program Java pentru a crea un thread utilizând interfața Runnable
Conform programului de mai sus, clasa Runnable Demo implementează interfața Runnable. Metoda run () se află în clasa care implementează interfața Runnable. Este punctul de intrare pentru fir. Logica este în metoda run (). În programul principal, un fir este creat prin definirea unui obiect care a fost instanțiat din clasa Runnable Demo. Este t1. Metoda start () se numește folosind t1.
Consultați programul de mai jos.
Figura 02: Program Java pentru a crea un thread pentru a executa o buclă, prin implementarea interfeței Runnable
Conform exemplului de mai sus, clasa Runnable Demo implementează interfața Runnable. Logica de a executa folosind firul este scrisă în metoda run (). În programul principal, un fir este creat prin definirea unui obiect care a fost instanțiat din clasa Runnable Demo. Este t1. Apoi, metoda start () se numește folosind t1.
Ce este Thread?
Cealaltă metodă de creare a unui thread este prin extinderea clasei Thread. Se compune din trei pași. În primul rând este să declarați clasa ca extinderea clasei Thread. Ulterior, ar trebui să se scrie metoda run (). Are secvența de pași pe care ar trebui să îi execute firul. În cele din urmă, obiectul thread este creat, iar metoda start () este chemată pentru a iniția execuția thread-ului. Consultați programul de mai jos.
Figura 03: Program Java care extinde clasa Thread
Conform programului de mai sus, clasa MyThread extinde clasa Thread. Înlocuiește metoda de rulare. Metoda run () conține logica care trebuie executată de thread. Este punctul de intrare în fir. Apoi se creează obiectul thread. Este thread1. Firul este pornit folosind metoda start (). Acesta va executa un apel pentru a rula () metoda.
Un exemplu de program de două clase care extinde clasa Thread este după cum urmează.
Figura 04: Program Java cu două clase care extind clasa Thread
Conform programului de mai sus, ambele clase A și B extind clasa Thread. Ambele clase au implementarea metodei run (). Firul principal este cel care execută metoda main (). Înainte ca firul principal să moară, acesta creează și pornește thread1 și thread2. În momentul în care firul principal a ajuns la sfârșitul metodei principale, trei fire rulează în paralel. Nu există o ordine specifică în care firele dau rezultate. Odată ce firul este pornit, este greu să decidem ordinea pe care o vor executa. Aleargă independent.
Care sunt asemănările dintre Runnable și Thread?
Ambele folosesc pentru a crea un fir în Java
Care este diferența dintre Runnable și Thread?
Difuzarea articolului din mijloc înainte de tabel
Runnable vs Thread |
|
Runnable este o interfață în Java pentru a crea un fir care permite multor fire să partajeze același obiect thread. | Firul este o clasă în Java pentru a crea un fir în care fiecare fir are un obiect unic asociat. |
Memorie | |
În Runnable, mai multe fire partajează același obiect, deci necesită mai puțină memorie. | În clasa Thread, fiecare thread creează un obiect unic, prin urmare necesită mai multă memorie. |
Extinderea abilității | |
După implementarea interfeței Runnable, poate extinde o clasă. | Moștenirile multiple nu sunt acceptate în Java. După extinderea clasei Thread, nu poate extinde nicio altă clasă. |
Mentenabilitatea codului | |
Interfața rulabilă face codul mai ușor de întreținut. | În clasa Thread, întreținerea necesită mult timp. |
Rezumat - Runnable vs Thread
Un proces este împărțit în mai multe subprocese pentru a efectua mai multe sarcini în același timp. Aceste subprocese sunt cunoscute sub numele de fire. Instanțierea unui thread poate fi realizată prin implementarea interfeței Runnable sau prin extinderea clasei Thread. Este ușor să extindeți clasa Thread, dar nu este o practică mai bună de programare orientată pe obiecte. Atunci când implementați Runnable, multe fire pot partaja același obiect thread în timp ce în extinderea clasei Thread fiecare thread are un obiect unic asociat. Aceasta este diferența dintre Runnable și Thread. În clasa Thread, crearea de obiecte multiple poate consuma mai multă memorie.
Descărcați PDF-ul Runnable vs Thread
Puteți descărca versiunea PDF a acestui articol și o puteți folosi în scopuri offline, conform notei de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre Runnable și Thread