РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
990 of 1163 menu

Метод run

Метод run является единственным абстрактным методом функционального интерфейса Runnable. Он определяет задачу, которая должна быть выполнена в отдельном потоке. Когда вы передаете объект Runnable в конструктор класса Thread и вызываете метод start, виртуальная машина Java создает новый поток и автоматически вызывает в нем метод run. Метод не принимает параметров и не возвращает значения. Если вызвать метод run напрямую, без создания потока, код выполнится в текущем потоке, как обычный вызов метода.

Синтаксис

public void run()

Пример

Давайте создадим класс, реализующий интерфейс Runnable, и запустим его в отдельном потоке:

public class Main { public static void main(String[] args) { Runnable task = new Runnable() { @Override public void run() { System.out.println("Hello from new thread"); } }; Thread thread = new Thread(task); thread.start(); } }

Результат выполнения кода:

"Hello from new thread"

Пример

Давайте используем лямбда-выражение для реализации метода run и выведем числа от 1 до 5:

public class Main { public static void main(String[] args) { Runnable task = () -> { for (int i = 1; i <= 5; i++) { System.out.println(i); } }; Thread thread = new Thread(task); thread.start(); } }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте вызовем метод run напрямую, без создания нового потока, и убедимся, что код выполняется в главном потоке:

public class Main { public static void main(String[] args) { Runnable task = () -> { System.out.println(Thread.currentThread().getName()); }; task.run(); } }

Результат выполнения кода:

"main"

Смотрите также

  • интерфейс Runnable,
    который представляет задачу для выполнения в потоке
  • метод start,
    который запускает поток и вызывает метод run
  • интерфейс Callable,
    который позволяет вернуть результат из потока
  • класс Thread,
    который представляет поток выполнения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить