使用线程并行运行类的方法

时间:2014-02-08 14:11:38

标签: java multithreading

我正在使用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。

内部注意一个方法依赖于它所属的类中的其他方法应该按顺序运行(可选:返回一些值)。

请任何人指导我正确的方向

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以简单地循环并创建线程

for (final String className : classNameList) {
    new Thread(new Runnable() {
        void run() {
            Class c = Class.forName(className);
            ...

        }
    }).start();
}

但我建议你不要使用多线程,除非你真的理解多线程并且它是副作用。