Різниця між розгорнутою та нитковою

Ключова різниця - виконується vs Нитка
 

Програма у виконанні відома як процес. Процес можна розділити на кілька підпроцесів. Наприклад, Microsoft Word - це процес. Водночас він перевіряє орфографічну помилку та граматику. Це підпроцес. Ці підпроцеси відомі як потоки. Багатопоточність - це процес виконання декількох потоків одночасно. Різьбові програми можна будувати за допомогою різних мов програмування. Runnable і Thread пов'язані з програмуванням Java. У Java є два способи створення потоку шляхом реалізації інтерфейсу Runnable або розширення класу Thread. При впровадженні Runnable багато потоків можуть спільно використовувати один об'єкт потоку, коли в класі Extending Thread кожен потік має унікальний об'єкт, пов'язаний з ним. Це те саме ключова різниця між Runnable і Thread.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке Runnable
3. Що таке нитка
4. Подібність між розгорнутою та нитковою
5. Порівняльне порівняння - Виконується проти нитки в табличній формі
6. Підсумок

Що таке Runnable?

Нитка проходить через деякі стани. "Нове" - це початок життєвого циклу нитки. Після того, як метод start () викликає новий потік, він стає запущеним. Якщо планувальник потоків вибирає потік, він переходить у запущений стан. Потік чекає стану, якщо цей потік чекає іншого потоку для виконання завдання. Після завершення роботи нитка переходить у стан завершення.

Нитка може бути реалізована за допомогою інтерфейсу Runnable. Дивіться програму нижче.

Рисунок 01: Програма Java для створення потоку за допомогою інтерфейсу Runnable

Відповідно до програми, клас Runnable Demo реалізує інтерфейс Runnable. Метод run () знаходиться всередині класу, який реалізує інтерфейс Runnable. Це точка входу для нитки. Логіка в методі run (). У головній програмі потік створюється шляхом визначення об'єкта, який інстанціюється з класу Runnable Demo. Це t1. Метод start () викликається за допомогою t1.

Дивіться програму нижче.

Малюнок 02: Програма Java для створення потоку для виконання циклу, реалізуючи інтерфейс Runnable

Згідно з вищенаведеним прикладом, клас Runnable Demo реалізує інтерфейс Runnable. Логіка виконання за допомогою потоку записується методом run (). У головній програмі потік створюється шляхом визначення об'єкта, який інстанціюється з класу Runnable Demo. Це t1. Потім метод start () викликається за допомогою t1.

Що таке нитка?

Інший спосіб створення потоку - це розширення класу Thread. Він складається з трьох етапів. Спочатку слід оголосити клас розширенням класу Thread. Після цього слід записати метод run (). Він має послідовність кроків, які повинна виконати нитка. Нарешті, створюється об’єкт потоку, і викликається метод start (), щоб ініціювати виконання потоку. Дивіться програму нижче.

Рисунок 03: Програма Java, яка розширює клас Thread

Відповідно до програми, клас MyThread розширює клас Thread. Він перекриває метод запуску. Метод run () містить логіку, яку слід виконати потоком. Це точка входу до нитки. Потім створюється об’єкт потоку. Це нитка1. Нитка запускається за допомогою методу start (). Він виконає виклик до методу run ().

Приклад програми двох класів, що розширюють клас "Нитка", виглядає наступним чином.

Рисунок 04: Програма Java з двома класами, що розширюють клас Thread

Відповідно до вищезгаданої програми, і клас A, і B розширюють клас теми. Обидва класи мають реалізацію методу run (). Основна нитка - це те, що виконує метод main (). Перш ніж головна нитка відмирає, вона створює та запускає нитку1 та нитку2. На той час, коли головна нитка досягла кінця основного методу, три нитки паралельно працюють. Немає конкретного порядку, в якому потоки дають вихід. Після запуску потоку важко визначитися з порядком, який вони будуть виконувати. Вони бігають самостійно.

Які схожість між Runnable і Thread?

  • Обидва використовують для створення потоку на Java.

Яка різниця між розгорнутою та нитковою?

Runnable vs Thread

Runnable - це інтерфейс у Java для створення потоку, який дозволяє багатьом потокам ділити один і той же об’єкт потоку. Нитка - це клас в Java для створення потоку, де кожен потік має унікальний об'єкт, пов'язаний з ним.
 Пам'ять
У Runnable кілька потоків мають один і той же об’єкт, тому потрібно менше пам'яті. У класі Thread кожен потік створює унікальний об’єкт, тому потрібно більше пам’яті.
Розширення здатності
Після реалізації інтерфейсу Runnable він може розширити клас. На Java не підтримуються декілька успадкувань. Після розширення класу Thread він не може розширити жоден інший клас.
 Код ремонтопридатності
Інтерфейс, який можна запустити, робить код більш ретельним. У класі Thread підтримка займає багато часу.

Підсумок - Виконується vs Нитка 

Процес поділяється на кілька підпроцесів, щоб одночасно виконувати кілька завдань. Ці підпроцеси відомі як потоки. Моменталізація потоку може бути здійснена за допомогою реалізації інтерфейсу Runnable або розширенням класу Thread. Клас Thread легко розширити, але це не краща практика об'єктно-орієнтованого програмування. Під час реалізації Runnable багато потоків можуть спільно використовувати один і той же об’єкт потоку, тоді як у розширенні класу Thread кожен потік має унікальний об'єкт, пов'язаний з ним. У цьому різниця між Runnable і Thread. У класі Thread створення декількох об'єктів може споживати більше пам'яті.

Завантажте PDF Runnable vs Thread

Ви можете завантажити PDF-версію цієї статті та використовувати її в офлайн-цілях відповідно до примітки. Завантажте PDF-версію тут Різниця між Runnable та Thread

Довідка:

1.tutorialspoint.com. «Багатопотокова програма Java». Точка, доступна тут 
2.Pramodbablad. "Розширює Thread Vs реалізує виконується в Java." Концепція дня Java, 11 листопада 2016. Доступна тут
3. Шляхи створення теми в багатопотоковій Java | Основний Java-підручник | Навчальна ніч. Доступний тут