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();
}
}
}