1. 程式人生 > >junit測試類測試多線程遇到的問題

junit測試類測試多線程遇到的問題

強制 多線程 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測試類測試多線程遇到的問題