我出现的问题是在使用多线程的yield方法时线程异常终止,执行一两次后就会停止。它出现的原因就是junit会在主线程结束之后关闭进程导致线程异常结束。下面是解决方案:
- 可以通过thread.sleep(),让主线程暂时休眠,其他线程运行完在结束
- 可以用 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