Я вижу здесь 2 ошибки:
- Вам не нужно 2 метода для одного и того же.
- Чтобы запустить поток с Runnable, вы никогда не вызываете run method.
Это правильный путь:
class FooBar {
public void executeRunnable(Runnable printFoo) throws InterruptedException {
// printFoo.run() outputs "foo"
new Thread(printFoo).start();
}
public static void main(String... args) {
FooBar fooBar = new FooBar();
fooBar.executeRunnable(new Runnable1());
fooBar.executeRunnable(new Runnable2());
}
}
Представьте, что Runnable1 пишет «foo», а Runnable2 пишет «Bar»