除非我调用join,否​​则为什么ant在多线程junit测试后挂起?

时间:2016-03-21 18:03:04

标签: java multithreading ant junit

当我通过我的ant构建文件的junit目标

运行我的一个单元测试时
<junit showoutput="true" printsummary="yes" haltonfailure="yes" fork="yes" timeout="60000">
junit告诉我:

[junit] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.958 sec

表示测试成功完成,然而,它会在该行之后挂起,并将无限期地坐在那里(直到我杀死它)。

在测试中,创建了一个新线程,但基于System.out.println输出,我可以看到它永远不会完成,即使它不会超过几秒钟。如果我明确地调用join(),那么一切都按预期完成。

如果我在Eclipse中运行相同的junit测试(没有明确的join()),似乎没有任何问题。

我的问题是[为什么]在我的单元测试方法返回之前是否需要调用join()

0 个答案:

没有答案