Thread.sleep ()Никогда не возвращается

У меня странная ошибка с Thread.sleep()на Java. По какой-то причине, когда я вызываю сон на некоторых машинах, он никогда не возвращается. Я не могу понять, что может быть причиной такого поведения. Сначала я подумал, что ошибка может быть где-то еще в моем коде, поэтому я сделал простейший возможный тест на сон :

public class SleepTest {
    public static void main (String [] args) {
        System.out.println ("Before sleep...");
        try {
            Thread.sleep (100);
        } catch (InterruptedException e) {
        }
        System.out.println ("After sleep...");
    }
}

. На большинстве машин это работает, но на некоторых машинах, на которые я вхожу удаленно, между операторами печати делаются паузы на неопределенный срок. Я ждал до получаса без каких-либо изменений в поведении. Машины, на которых отображается эта ошибка, являются машинами Linux. Вот некоторая информация о машинах:

$ uname -a
Linux zone29ea 2.6.32-220.17.1.el6.x86_64 #1 SMP Tue May 15 17:16:46 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

Что может быть причиной такого поведения?

ОБНОВЛЕНИЕ

Переработанная версия, которая до сих пор никогда не заканчивается:

public class SleepTest {
    public static void main (String [] args) {
        new Thread () {
            public void run () {
                System.out.println ("Before sleep...");
                try {
                    Thread.sleep (100);
                } catch (InterruptedException e) {
                    e.printStackTrace ();
                }
                System.out.println ("After sleep...");
            }
        }.start();
    }
}
20
задан 101100 2 July 2012 в 14:37
поделиться