Що означає "запустити" на Java, неспеціалістично? Я студент з програмування AP у середній школі, завдання якого - дослідити або розшукати у інших, що таке "керований" (ми тільки вступаємо в ООП, і ще не торкалися тем).
Що означає "запустити" на Java, неспеціалістично? Я студент з програмування AP у середній школі, завдання якого - дослідити або розшукати у інших, що таке "керований" (ми тільки вступаємо в ООП, і ще не торкалися тем).
Відповіді:
Runnable - це, в основному, тип класу (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();
Це схоже на вищезазначене, тільки ви не створюєте іншого іменованого класу.
runметоду, після чого Потік закривається. Якщо ви хочете, щоб потік працював знову і знову, помістіть цикл всередину runметоду.
new Thread(() -> System.out.println("hello from other thread")).start();
Runnable - це інтерфейс, який визначається так:
interface Runnable {
public void run();
}
Щоб створити клас, який його використовує, просто визначте клас як (public) class MyRunnable implements Runnable {
Його можна використовувати, навіть не створюючи нової нитки. Це в основному ваш базовий інтерфейс з одним методом, запуском, який можна викликати.
Якщо ви зробите новий Thread із запущеним параметром, він викличе метод run у новому Thread.
Слід також зазначити, що Threads реалізуються Runnable, і це викликається при створенні нової Thread (у новому потоці). Реалізація за замовчуванням просто викликає будь-який Runnable, який ви передали в конструкторі, саме тому ви можете просто обійтися, new Thread(someRunnable)не замінюючи runметод Thread .
Threadоб’єднання потоків складно, і якщо ви не реалізуєте об’єднання потоків, ви постійно витрачаєте значні витрати на створення нових потоків. Навпаки, просто реалізація Runnableозначає, що ви можете легко використовувати такі речі, як ThreadPoolExecutorServiceсторонній пул потоків.