В простом для понимания объяснении, что такое Runnable в Java? [закрытый]
Что такое" runnable " в Java, в терминах непрофессионала? Я студент AP программирования в средней школе, чье задание состоит в том, чтобы делать исследования, или искать у других, что такое "runnable" (мы только входим в ООП, и еще не коснулись темы).
2 ответа:
Runnable-это в основном тип класса (Runnable-это интерфейс), который может быть помещен в поток, описывая, что поток должен делать.
Управляемый интерфейс требует от класса реализовать метод
run()
следующим образом:public class MyRunnableTask implements Runnable { public void run() { // do stuff here } }
А затем использовать его следующим образом:
Thread t = new Thread(new MyRunnableTask()); t.start();
Если бы у вас не было интерфейса
Runnable
, класс Thread, который отвечает за выполнение вашего материала в другом потоке, не имел бы обещания найти методrun()
в ваш класс, так что вы могли бы получить ошибки. Именно поэтому вам необходимо реализовать интерфейс.Дополнительно: Анонимный Тип
Обратите внимание, что вам не нужно определять класс как обычно, вы можете сделать все это встроенным:
Thread t = new Thread(new Runnable() { public void run() { // stuff here } }); t.start();
Это похоже на описанное выше, только вы не создаете другой именованный класс.
Runnable
интерфейс определяется следующим образом:interface Runnable { public void run(); }
Чтобы создать класс, который его использует, просто определите класс как
Его можно использовать даже без создания новой нити. Это в основном ваш базовый интерфейс с одним методом, run, который можно вызвать.(public) class MyRunnable implements Runnable {
Если вы создадите новый поток с параметром runnable, он вызовет метод run в новом потоке.
Следует также отметить, что потоки реализуют
Runnable
, и это вызывается, когда создается новый поток (в новый поток). Реализация по умолчанию просто вызывает все Runnable, которые вы передали в конструктор, поэтому вы можете просто сделатьnew Thread(someRunnable)
, не переопределяя метод Thread'Srun
.