Що таке Runnable в Java?
Інтерфейс Runnable у Java використовується для створення задач, які можуть виконуватись у потоці. Його основний метод run містить код, що буде виконуватись у потоці, і дозволяє розробнику реалізувати власну логіку багатопоточності.
Цей інтерфейс особливо корисний, коли ви хочете розділити логіку виконання на окремі задачі або реалізувати паралельні обчислення. Runnable — це основний спосіб визначення потоку у Java, особливо якщо ваш клас вже успадковується від іншого класу і не може розширити Thread.
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Потік виконується: " + i);
try {
Thread.sleep(1000); // Затримка на 1 секунду
} catch (InterruptedException e) {
System.out.println("Потік був перерваний");
}
}
}
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start(); // Запуск потоку
}
}
У цьому прикладі клас MyRunnable реалізує інтерфейс Runnable і визначає метод run, де задається основна логіка потоку. У методі main створюється екземпляр потоку на основі MyRunnable, і він запускається за допомогою методу start.
1. Дозволяє багаторазово використовувати одну і ту ж задачу в різних потоках, оскільки інтерфейс відокремлює логіку виконання від управління потоком.
2. Клас, що реалізує Runnable, може успадковуватись від іншого класу, оскільки він не прив'язаний до спадкування Thread.
3. Забезпечує чітке розмежування задач і потоків, що спрощує читання та тестування коду.