¿Por qué hay dos clases de temporizador en Java (una bajo javax.swing, una bajo java.util)?

Estoy realmente confundido acerca de esto. Java tiene dos clases de temporizador, una bajooscilación , y uno bajoutil ... ¿porqué es eso? ¿Cuál debería usar si quiero simplemente ejecutar X cada Y segundos? ¿Significa esto que si estoy creando una GUI tengo que usar la versión swing para un temporizador?

¡Gracias!