Ключевое отличие - работоспособность против потока
Выполняемая программа называется процессом. Процесс можно разделить на несколько подпроцессов. Например, Microsoft Word - это процесс. В то же время он проверяет орфографические ошибки и грамматику. Это подпроцесс. Эти подпроцессы известны как потоки. Многопоточность - это процесс одновременного выполнения нескольких потоков. Потоковые приложения могут быть созданы с использованием разных языков программирования. Runnable и Thread связаны с программированием на Java. В Java есть два метода создания потока путем реализации интерфейса Runnable или расширения класса Thread. При реализации Runnable многие потоки могут совместно использовать один и тот же объект потока, в то время как в классе Extension Thread каждый поток имеет связанный с ним уникальный объект. Это ключевое различие между Runnable и Thread.
СОДЕРЖАНИЕ
1. Обзор и основные различия
2. Что такое Runnable
3. Что такое Thread
4. Сходства между Runnable и Thread
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. После этого следует написать метод 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 vs Thread |
|
Runnable - это интерфейс в Java для создания потока, который позволяет многим потокам совместно использовать один и тот же объект потока. | Поток - это класс в Java для создания потока, в котором каждый поток имеет уникальный объект, связанный с ним. |
объем памяти | |
В Runnable несколько потоков совместно используют один и тот же объект, поэтому требуется меньше памяти. | В классе Thread каждый поток создает уникальный объект, поэтому требует больше памяти. |
Расширение возможностей | |
После реализации интерфейса Runnable он может расширить класс. | Множественное наследование не поддерживается в Java. После расширения класса Thread он не может расширять любой другой класс. |
Ремонтопригодность кода | |
Запускаемый интерфейс делает код более удобным в сопровождении. | В классе Thread обслуживание занимает много времени. |
Резюме - Runnable vs Thread
Процесс делится на несколько подпроцессов для одновременного выполнения нескольких задач. Эти подпроцессы известны как потоки. Создание экземпляра потока может быть выполнено путем реализации интерфейса Runnable или расширения класса потока. Класс Thread легко расширить, но это не лучшая практика объектно-ориентированного программирования. При реализации Runnable многие потоки могут совместно использовать один и тот же объект потока, в то время как при расширении класса Thread каждый поток имеет уникальный объект, связанный с ним. В этом разница между Runnable и Thread. В классе Thread создание нескольких объектов может потреблять больше памяти.
Загрузите PDF-файл Runnable vs Thread
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Пожалуйста, скачайте PDF-версию здесь Разница между Runnable и Thread