Как определить оставшееся время ожидания потока в Java - PullRequest
0 голосов
/ 30 сентября 2011

Я понимаю, что в классе Thread нет специального метода, который позволял бы программе проверять, сколько оставшегося времени у потока до его пробуждения. Но если вам нужна такая функция, как бы вы ее реализовали?

Например, у меня есть: Поток A - при определенном условии он ожидает некоторое время. Поток B - не знает, что поток A настроен на ожидание в течение некоторого времени.

Вопросы: 1. Есть ли способ для жабы B определить, сколько миллисекунд нить A настроена на ожидание? 2. Как насчет определения, сколько времени осталось до истечения ожидания? 3. Другой поток C обнаружил, что системные часы изменились, есть ли способ определить оставшееся время на основе новых системных часов?

Спасибо

------- Редактировать -----

Что я действительно хочу сделать, так это запланировать запуск процесса в определенное время. Я не хочу использовать TimerTask по какой-то причине, поэтому я создал поток, который будет ждать (FutureDate - CurrentDate). Я хочу прервать это ожидание, если дата и время системы изменились (New.System.Date). Теперь, если (FutureDate - New.System.Date) не так сильно отличается с (FutureDate - OldSystemDate), скажем, всего за несколько секунд, я бы не хотел прерывать ожидание. Но если он огромен, как несколько минут, мне придется сбросить ожидание на другое (FutureDate - New.System.Date).

...