ScheduledExecutorService tiene métodos como scheduleAtFixedRate (comando Runnable, longDelay inicial, período largo, unidad TimeUnit) para invocar clases Runnable a intervalos fijos. Quiero que mi Thread devuelva algún valor después de la ejecución. Entonces implementé la interfaz de llamada. No pude encontrar un método equivalente para invocar mi clase invocable a intervalos regulares. ¿Hay alguna otra forma de implementar esto? Si Java no proporciona esta funcionalidad, ¿cuál es la razón detrás de esa decisión? Por favor hagamelo saber. Gracias.¿Cómo se usa ScheduledExecutorService en java para llamar a una implementación invocable a intervalos fijos?
12
A
Respuesta
10
No puede programar Callable
para la ejecución periódica ya que no está claro cómo devolver un resultado de dicha ejecución.
Si usted tiene su propio enfoque para devolver el resultado (por ejemplo, colocando el resultado en una cola), se puede envolver en Callable
Runnable
e implementar su enfoque:
final BlockingQueue<Result> q = new ArrayBlockingQueue<Result>();
final Callable<Result> action = ...;
s.scheduleAtFixedRate(new Runnable() {
public void run() {
q.put(action.call());
}
}, ...);
Cuestiones relacionadas
- 1. ¿Cómo puedo hacer que una barra de desplazamiento solo se desplace a intervalos fijos?
- 2. ¿Cómo llamar a un hilo para que se ejecute en una hora específica en Java?
- 3. ¿Cómo dar nombre a un hilo invocable?
- 4. Buscando Clarity en Java ScheduledExecutorService y FutureTask
- 5. ¿Cómo programo que una tarea se ejecute a intervalos periódicos?
- 6. script javax cómo llamar a una función en JavaScript desde Java
- 7. ¿Cómo llamar a un método en Java?
- 8. ¿Llamar a Python en Java?
- 9. ¿Cómo se usa telnet para verificar una conexión a Oracle?
- 10. Llamar a una clase java desde perl
- 11. Llamar a una subrutina Fortran desde Java
- 12. ¿Cómo se usa una biblioteca de Java?
- 13. llamar a Java desde PHP
- 14. Cómo llamar a la implementación predeterminada de heightForRowAtIndexPath?
- 15. Llamar a la función periódicamente en Java
- 16. ¿Cómo reprogramar una tarea usando un ScheduledExecutorService?
- 17. Llamar a Java desde Python
- 18. ejecutar una tarea a intervalos específicos en Python
- 19. ¿Cómo llamar a C++ desde Java?
- 20. Cómo llamar a una función variadica de Clojure desde Java
- 21. Cómo llamar a Clojure Macros desde Java?
- 22. ¿Cómo llamar a una función java de python/numpy?
- 23. ¿Cómo puedo llamar a Perl desde Java?
- 24. ¿Cómo se usa Java para llamar al intérprete de Rhino Javascript?
- 25. Quartz vs. ScheduledExecutorService en la aplicación web Java
- 26. números decimales fijos con JAVA
- 27. Cómo ejecutar la tarea Async repetidamente después de intervalos de tiempo fijos
- 28. Cómo llamar a objetos y funciones Java desde CPython?
- 29. llamar a Java desde Clojure
- 30. margen afecta a otros elementos fijos posición