还想简单写写线程的东西,结果刚刚写完我懵逼了。
结果啥都没有输出,而用主方法运行可以输出。没办法,只有度年来寻求自己的答案了
结果各方面的了解,我算是有个了解了.
首先来看看代码
package com.mendale.Test;
import java.util.Date;
import org.junit.Test;
public class Test1 {
@Test
public void test() {
MyTime mt = new MyTime();
mt.start();
}
public static void main(String[] args) {
MyTime mt = new MyTime();
mt.start();
}
}
class MyTime extends Thread{
public void run(){
boolean flag=true;
while(flag){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Date d=new Date();
System.out.println(d);
}
}
}
如果你用单元测试你会发现什么也没输出,同时也没报错;这个时候你再用主方法测试你会发现竟然有输出,竟然有输出了!!! 这个问题也是让我纠结了很久。
回想一下:
我们常用的方法其实是一个精灵线程(即守护线程:它是在保证其他线程运行完之后,然后也over了)。而单元测试我上网了解了一下它不是一个精灵线程