我正在使用java。我能够使用包名称获取类名,并通过启动类并使用invoke属性运行方法来获取特定类中的所有方法,从而能够依次顺序运行方法。
Class c = Class.forName(Package.ClassName);
Object obj = c.newInstance();
Method[] method = c.getDeclaredMethods();
for(Method m1 : method)
{
for(String sfunctionname :sFunctionName)
if(sfunctionname.equals(m1.getName()))
{
System.out.println("Method Name " + m1.getName());
mth = m1.getName();
meth = (Method) obj.getClass().getMethod(sfunctionname);
meth .invoke(obj)
}
}
这些类的结构定义如下
private void class1()
{
method1();
method2();
method3();
}
private void class2()
{
method1();
method2();
method3();
}
等.............
现在我想并行运行这些类(假设每个类是一个测试用例),即第一个线程中一个类的所有方法,第二个线程中第二个类中的方法等等。 class1中的所有方法都应该添加到一个线程中,执行 对于class2来说,属于它的所有方法应该并行地执行第二个线程,因此.. on ..
如何使用多线程进行操作。我已经浏览了文档,但无法了解如何使用callablehere。
内部注意一个方法依赖于它所属的类中的其他方法应该按顺序运行(可选:返回一些值)。
请任何人指导我正确的方向
提前致谢
答案 0 :(得分:2)
您可以简单地循环并创建线程
for (final String className : classNameList) {
new Thread(new Runnable() {
void run() {
Class c = Class.forName(className);
...
}
}).start();
}
但我建议你不要使用多线程,除非你真的理解多线程并且它是副作用。