Не совсем понятно, как работает метод getTime().. Помогите, пожалуйста, разобраться. Эта задачка не из курса ждавараш, решил параллельно делать свою мини-программку. В одном создаваемых потоков хочу вычислить разницу во времени от начала создания новой нити (создаю переменную final static long flag_t) до момента, когда переменная Term.x станет менее 5 (для этого вызываю dateNow.getTime() ), но всегда разность во времени получается равной нулю. При тестировании (если убрать условие if (Term.x < 5) и запускать кусок этой программы) получаю всегда равенство значений flag_t и dateNow.getTime(). 1. Подскажите, пожалуйста, как я могу вычислить разницу во времени от начала выполнения этой нити до выполнения условия Term.x < 5 (это время примерно равняется 3 секундам)? 2. В строке 16 поток прекращает свое существование, при этом он будет отнимать у процессора часть "рабочей мощности" в виде оперативной памяти и т.п? Как я понимаю, поток в этом месте просто "зациклится" в одной точке и будет "виснуть", а удалится полностью только после автоматического запуска сборщика мусора, я верно понимаю? Заранее спасибо за ответы!
public class MT_1 implements Runnable {

    Date dateNow = new Date();
    static Date T = new Date();
    final static long flag_t = T.getTime(); // флаг начала отсчета времени

    public void run() {
while (true){
if (Term.x < 5) {
                    System.out.println(dateNow.getTime());
                    System.out.println(flag_t);
                    System.out.println("разница времени: " + ( dateNow.getTime() - flag_t) );

                    Thread.currentThread().interrupt();
                    System.out.println("самоуничтожение потока...");
                    while (Thread.currentThread().isInterrupted()); //здесь поток "самоуничтожается"
                }

            }
      }
}