Junit單元測試對線程測試沒反應


今天還想簡單寫寫線程的東西,結果剛剛寫完我就懵逼了。

結果啥都沒有輸出,而用主方法運行就可以輸出。沒辦法,只有度年來尋求自己的答案了

結果各方面的了解,我算是有個了解了.

首先來看看代碼

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了)。而單元測試我

上網了解了一下它不是一個精靈線程

(后續源碼分析:暫緩)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM