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 ScheduledExecutorServicefuncionalidad 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 Timerclase). El uso de a ScheduledExecutorServicetambién le brinda ventajas tales como:
- Puede personalizarlo si es necesario (ver el
newScheduledThreadPoolExecutor()o la ScheduledThreadPoolExecutorclase)
- Las ejecuciones 'únicas' pueden devolver resultados
Las únicas razones por las que Timerpuedo 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)