У меня есть класс, который реализует вызываемый интерфейс. Я хочу запланировать задачу для класса, используя метод scheduleAtFixedRate интерфейса ScheduledExecutorService. Однако schedAtFixedRate требует запускаемого объекта в качестве команды, которую он может планировать.Как мы можем преобразовать вызываемый в runnable
Следовательно, мне нужен способ, которым я могу преобразовать вызываемый в runnable. Я пробовал простое кастинг, но это не работает.
ОБРАЗЦА КОД:
package org.study.threading.executorDemo;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
class ScheduledExecutionTest implements Callable<String> {
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
System.out.println("inside the call method");
return null;
}
}
public class ScheduledExecution {
public static void main(String[] args) {
ScheduledExecutorService sec = Executors.newScheduledThreadPool(10);
sec.scheduleAtFixedRate(new ScheduledExecutionTest(), 5, 2, TimeUnit.SECONDS);
}
}
делает «реализует Callable, Runnable' не работает? Я никогда не пробовал использовать оба раньше. – Zircon
Цель 'Callable' - вернуть значение. Зачем вам возвращать значение, которое вы хотите сбросить с фиксированной ставкой? –
Ввод комментария @ PeterLawrey по-другому, что * делать * вы хотите сделать со значением, возвращаемым «Callable»? – dcsohl