假设,我有一些要从输入中读取的测试用例,其中每个测试用例参数后面跟着。 我如何创建一个新线程并在其中运行一个测试用例,最后按照测试用例出现的顺序打印结果。
Ex:
3
3
1 2 3
2
1 2
10
1 2 3 4 5 6 7 8 9 10
这里 System.in 中的第一个数字给出了测试用例的数量,后面跟着 3 个测试用例,每个测试用例的第一行包含一个数字,显示输入值的数量等, 假设每个的逻辑是打印总和,这里的结果将是 6 3 55
这通常可以通过顺序读取输入、执行方法、打印来完成。 当哪些操作花费时间会增加程序的执行时间。 那么,我如何在不同的线程中运行每个测试用例,并像 6 3 55 那样打印结果。每当线程结束时都不应该打印。我希望我的英语可以理解...... 顺便说一句,类没有实例变量。
---这不用于 junit 或其他测试目的。一个程序,其中阴影部分作为输入,给出输出。我更像是要求针对这样的情况优化带有线程的程序
最佳答案
这听起来像是直接的 ThreadPoolExecutor http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html 。您接受输入并构建一些可运行的对象。将其提交给 ThreadPoolExecutor,然后让输出显示在 System.out 上,Runnable 完成。
或者也许我不明白你的问题。我建议您研究 ThreadPoolExecutor 和/或 Futures。
这家伙有很好的例子:http://www.vogella.de/articles/JavaConcurrency/article.html#threadpools
关于java - 在不同线程中运行测试用例以缩短执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8753217/