Ничего особенного на самом деле не происходит в фоновом режиме.
Реализация интерфейса Runnable
гарантирует, что у вашего класса будет метод public void run()
.
Волшебство действительно происходит, когда вы передаете свой пользовательский класс в Thread
.
Thread th = new Thread(new YourCustomRunnable());
th.start();
В приведенном выше коде будет создан новый Thread
, а код внутри метода run()
будет запущен в другом потоке.
Внутренне поток вызовет ваш пользовательский метод run()
и заставит этот код выполняться в отдельном потоке. Технически возможно сделать следующее:
Runnable r = new MyCustomRunnable();
r.run();
В приведенном выше коде r
не будет работать в отдельном потоке.