Я пытаюсь выполнить работающий объект, используя пакет параллелизма Java, ExecutorService SingleThreadExecutor. Когда я вызываю команду execute для нового объекта Runnable, он просто переступает через него. то есть метод run () не вызывается.
Я прошел через строки кода с помощью отладчика и вижу, что мой SingleThreadExecutor был создан и мой Runnable инициализирован.
public class RunnableDemo {
public ExecutorService executor;
public RunnableDemo () {
this.executor = Executors.newSingleThreadExecutor();
}
public void start(){
executor.execute(new MyRunnable("Hello World"));
}
public static void main(String[] args){
RunnableDemo app = new RunnableDemo();
app.start();
}
}
public class MyRunnable implements Runnable {
private String strToPrint;
public MyRunnable(String parameter) {
this.strToPrint = parameter;
}
public void run() {
System.out.println(strToPrint);
}
}
И, вероятно, говорит само за себя, но в этом сценарии я бы ожидал увидеть на экране "Hello World". Однако метод execute / run, по-видимому, не вызывается после создания runnable.