junit测试类测试多线程遇到的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了junit测试类测试多线程遇到的问题相关的知识,希望对你有一定的参考价值。

    @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测试类测试多线程遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用java.lang.Exception的错误:测试类应该只有一个公共构造函数

单元测试多线程解决之道

使用junit进行多线程并发测试

使用junit进行多线程并发测试

Junit测试具有数据库访问权限的多线程应用程序[重复]

如何将JUnit 4测试添加到JUnit 3测试套件中