Si está disponible para usted, entonces es difícil pensar en una razón para no usar el marco de ejecución de Java 5. Vocación:
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
le dará una ScheduledExecutorService
funcionalidad similar a Timer
(es decir, será de un solo subproceso) pero cuyo acceso puede ser un poco más escalable (bajo el capó, utiliza estructuras concurrentes en lugar de una sincronización completa como con la Timer
clase). El uso de a ScheduledExecutorService
también le brinda ventajas tales como:
- Puede personalizarlo si es necesario (ver el
newScheduledThreadPoolExecutor()
o la ScheduledThreadPoolExecutor
clase)
- Las ejecuciones 'únicas' pueden devolver resultados
Las únicas razones por las que Timer
puedo seguir son:
- Está disponible antes de Java 5
- Se proporciona una clase similar en J2ME, que podría facilitar la transferencia de su aplicación (pero en este caso no sería terriblemente difícil agregar una capa común de abstracción)