с моей точки зрения, я думаю, что такие вещи требуют более надежных основ, чем обычные классы Java, поэтому я бы предложил использовать любую инфраструктуру планировщика (Quartz или любой другой проект), которая может дать вам ручку (работа идентификаторы), чтобы убить ваши трудоемкие задачи.
У вас может быть что-то вроде этого:
Main Thread запускает Quartz Scheduler, получает подписки на разные вакансии
говоря: Job1, Job 2 и TimeCheckerJob
TimeCheckerJob будет вечной работой, уведомляется о любой новой работе и будет проверять время жизни для каждой новой работы ... В этой работе вам придется иметь дело со временем начала каждой работы, остерегаясь часов ОС и не пытайтесь устанавливать слишком жесткие ограничения (наносекунды - это выдумка).
НТН
Мои 2 цента
Джером