junit測試類測試多線程遇到的問題
阿新 • • 發佈:2017-12-06
強制 多線程 pri println false cep 測試類 ted over
@Test public void testSychronized() throws InterruptedException { Thread t1 = new Thread(new Runnable() { @Override public void run() { /*System.out.println("I Hate U"); synchronized (this){ System.out.println("I Love U"); }*/ while (true){ System.out.println("子線程"); } } }); t1.setDaemon(false); t1.start(); Thread.sleep(2000); System.out.println("sss"); }
使用junit執行這段代碼,會在test方法執行完後,子線程也被強制終止,而使用main測試則不會(當然如果設置了子線程為守護線程也會在主線程執行完,即執行System.exit(0)後被強制退出)。
解答引自http://bbs.csdn.net/topics/391807147的網友解答,萬分感謝
junit測試類測試多線程遇到的問題