Основна разлика - Runnable vs Thread
Изпълняваната програма е известна като процес. Процесът може да бъде разделен на множество подпроцеси. Например Microsoft Word е процес. В същото време проверява за правописна грешка и граматика. Това е подпроцес. Тези подпроцеси са известни като нишки. Многопоточността е процес на едновременно изпълнение на множество нишки. Резбовите приложения могат да бъдат изградени с помощта на различни програмни езици. Runnable и Thread са свързани с програмирането на Java. В Java има два метода за създаване на нишка чрез внедряване на Runnable интерфейс или разширяване на класа Thread. Когато се изпълнява Runnable, много нишки могат да споделят един и същ обект на нишка, докато в клас Extending Thread, всяка нишка има уникален обект, свързан с нея. Това е ключовата разлика между Runnable и Thread.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е изпълним
3. Какво е резба
4. Прилики между изпълним и резба
5. Сравнение едно до друго - Runnable vs Thread в таблична форма
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. Състои се от три стъпки. Първото е да декларираме класа като разширяващ Thread класа. След това трябва да се напише методът run (). Той има последователност от стъпки, които нишката трябва да изпълни. И накрая, обектът на нишката се създава и методът start () се извиква, за да инициира изпълнението на нишката. Вижте програмата по-долу.
Фигура 03: Програма Java, която разширява класа Thread
Според горната програма класът MyThread разширява класа Thread. Той отменя метода на изпълнение. Методът run () съдържа логиката, която трябва да бъде изпълнена от нишката. Това е входната точка към нишката. След това се създава обектът нишка. Това е thread1. Нишката се стартира с помощта на метода start (). Той ще изпълни метод за извикване на run ().
Примерна програма от два класа, разширяващи класа Thread, е както следва.
Фигура 04: Програма Java с два класа, които разширяват класа Thread
Според горната програма и клас A, и клас B разширяват клас Thread. И двата класа имат своята реализация на метода run (). Основната нишка е тази, която изпълнява метода main (). Преди основната нишка да умре, тя създава и стартира thread1 и thread2. Когато основната нишка достигне края на основния метод, три нишки работят паралелно. Няма конкретен ред, в който нишките дават изход. След като нишката е стартирана, е трудно да се реши реда, който ще изпълнят. Бягат независимо.
Какви са приликите между Runnable и Thread?
И двете използват за създаване на нишка в Java
Каква е разликата между изпълним и резба?
Различна статия Средна преди таблица
Runnable срещу Thread |
|
Runnable е интерфейс в Java за създаване на нишка, която позволява на много нишки да споделят един и същ обект на нишка. | Нишката е клас в Java за създаване на нишка, където всяка нишка има уникален обект, свързан с нея. |
Памет | |
В Runnable множество нишки споделят един и същ обект, така че изискват по-малко памет. | В клас Thread всяка нишка създава уникален обект, следователно изисква повече памет. |
Разширяване на способността | |
След внедряване на Runnable интерфейс, той може да разшири клас. | Множество наследства не се поддържат в Java. След разширяване на клас Thread, той не може да разшири никой друг клас. |
Поддържане на кода | |
Изпълнителният интерфейс прави кода по-поддържаем. | В клас Thread поддръжката отнема много време. |
Резюме - Runnable vs Thread
Процесът е разделен на множество подпроцеси за едновременно изпълнение на множество задачи. Тези подпроцеси са известни като нишки. Инстанцирането на нишка може да се извърши чрез прилагане на интерфейса Runnable или чрез разширяване на Thread Class. Разширяването на класа Thread е лесно, но не е по-добра практика за обектно-ориентирано програмиране. Когато се изпълнява Runnable, много нишки могат да споделят един и същ обект на нишка, докато при разширяване на класа Thread всяка нишка има уникален обект, свързан с нея. Това е разликата между Runnable и Thread. В клас Thread създаването на множество обекти може да консумира повече памет.
Изтеглете PDF файла на Runnable vs Thread
Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката към цитата. Моля, изтеглете PDF версията тук Разлика между Runnable и Thread