Я хочу протестировать метод Thread.sleep() и обнаружил интересную вещь. Когда я вызываю метод main(), консоль выводит «UserA sleep...» и «UserA waking...», это означает, что программа пробуждается, но когда я использую метод junit для запуска того же кода, что и метод main(), он не печатает «UserA waking...»… Буду признателен, если кто-нибудь объяснит это.
package com.lmh.threadlocal;
import org.junit.Test;
public class ThreadTest {
public static void main(String [] args) {
new Thread(new UserA()).start();
}
@Test
public void testWakeup(){
new Thread(new UserA()).start();
}
}
class UserA implements Runnable{
@Override
public void run() {
try {
System.out.println("UserA sleeping...");
Thread.sleep(1000);
System.out.println("UserA waking...");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
testWakeup
. Мол, в начале - Создание новой темы. - person bsd   schedule 24.08.2013System.exit()
вскоре после возвращения изtestWakeup
. Или это может быть убийство дочерних потоков... хотя я думаю, что это маловероятно. - person Stephen C   schedule 24.08.2013