gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:14:00 25 4
gpt4 key购买 nike

我正在使用java。我能够使用包名称获取类名,并通过启动类并使用调用属性运行方法来获取特定类中的所有方法,能够依次运行这些方法。

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 来说,属于它的所有方法都应该在第二个线程中并行执行,依此类推..

如何使用多线程来做到这一点。我已经阅读了文档,但无法了解如何使用 callablehere。

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

请有人指导我正确的方向

提前致谢

最佳答案

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

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

}
}).start();
}

但我建议您不要使用多线程,除非您真正了解多线程及其副作用。

关于java - 使用线程并行运行类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21647043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com