繁体   English   中英

Java等待所有线程终止

[英]Java wait for all threads before terminating

我正在尝试使用Jmeter测试应用程序。 该应用程序使用专有的库来创建多个线程。 在JMeter中,我创建了AbstractJavaSamplerClient,它似乎并不等待可能在应用程序中生成的所有其他线程。 相反,它只是运行其自己的默认方法并关闭以使其他线程在后台运行,因为我正在连接到应用程序中的服务器,因此我可以通过服务器日志看到它仍然处于连接状态。 由于我没有通过专有库实例化其他线程的引用,因此无法使用wait()或join()的常见解决方案。如何获取主线程来等待所有线程线程(我也没有参考)?

将库的所有工作放在专门创建的线程组中的单独线程中。 该库将在该线程组及其后代中创建新线程。 使用group.enumerate(new Thread[group.activeCount()*2],true)递归列出该组的所有线程。 然后,您可以全部加入()。

你可以开始

Thread.getAllStackTraces().keySet();

这将为您提供一组所有正在运行的线程。 这将包括您感兴趣的线程以及所有其他线程,包括JVM内部的线程。

希望您能够按名称过滤掉您感兴趣的那些,然后可以join()它们join()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM