Junit问题:Java单元测试多线程问题时,程序异常中断
使用线程池中的线程执行任务时,使用Runnable接口无法正常打印结果,调试发现运行到一半程序就中断了(最恶心的是多次运行,大部分时候失败,但有时也能成功,让我一度怀疑是不是我的JDK坏了),而使用Callable接口可以完美进行。
经过了各种尝试,最终发现是Junit的问题,这个鬼东西会在主线程结束后调用相关的System.exit()方法,将JVM关闭,所以,emmm,子线程被动挂了。
那为何Callable接口可以完美进行嘞?因为它必须返回一个值,才可以使主程序继续进行,所以起到了一个阻塞的作用。。。
原创
2020-09-01 17:11:48 ·
829 阅读 ·
0 评论