解决java使用junit测试多线程异常终止

文章讲述了在使用Java多线程和yield方法时遇到的问题,由于JUnit在主线程结束后关闭进程,导致线程异常终止。提供两种解决方案:一是让主线程休眠,二是利用CountDownLatch协调线程执行。参考链接给出详细说明。
摘要由CSDN通过智能技术生成

我出现的问题是在使用多线程的yield方法时线程异常终止,执行一两次后就会停止。它出现的原因就是junit会在主线程结束之后关闭进程导致线程异常结束。下面是解决方案:

  1. 可以通过thread.sleep(),让主线程暂时休眠,其他线程运行完在结束
  2. 可以用 CountDownLatch
  • 方法一
    @Test
    public void demo() throws InterruptedException {
        thread_ thread = new thread_();
        thread_ thread1 = new thread_();
        thread.start();
        thread.yield();//给其他线程让路,但不定保证可以占用cpu
        thread1.start();
        //下面是设置主线程休眠
        System.out.println("main thread sleep...");
        Thread.sleep(20*1000);
    }
  • 方法二

参考这个博主的文章https://blog.csdn.net/goxingman/article/details/105663113

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值