如何根据类名列表动态创建执行ExecutorService 来并发执行

public class SingleThread implements Runnable { ... }

public static void main(String[] args)
{
ExecutorService parallelTest = Executors.newFixedThreadPool(10);

for(int i=0; i<1; i++){

    System.out.println("Thread " + i + " launching now");           
    parallelTest.execute(new SingleThread());
     }

parallelTest.shutdown();

用以上方法可以实现对指定类的并发执行,但是需要事先知道类名。如何对一组事先不知道的类名通过这个方法来并发执行呢?

即有 n个不同的实现了runnable的类,就像一个测试类列表,通过以上或类似的方法来实现并发执行呢?

望赐教,谢谢。

[code="java"]
public class SingleThread implements Runnable { ... }

String[] list ={"c1","c2","c3", "c4"};

ExecutorService parallelTest = Executors.newFixedThreadPoo(list.length);

for(int i=0;i<list.length;i++){

Class cls = Class.forName(list[i]);

Object service=cls.newInstance(obj);

//此处需将Object强制转型为Runnable

parallelTest.execute((Runnable)service);

}

[/code]

假设你的测试类列表为List rList

那么可以这样
[code="java"]for(Runnable test : rList){
parallelTest.execute(test);
}[/code]

这样不就行了。

[code="java"]
//你要运行的类
public class SingleThread implements Runnable { ... }

//通用的线程执行程序
String[] clss={"a","b","c"};
ExecutorService parallelTest = Executors.newFixedThreadPoo(clss.length);
for(int i=0;i<clss.length;i++){
Class cls = Class.forName(clss[i]);
Object service=cls.newInstance(obj);
parallelTest.execute(service);
}
[/code]

使用反射技术即可:
[code="java"]
public class SingleThread implements Runnable { ... }

String[] list ={"c1","c2","c3", "c4"};

ExecutorService parallelTest = Executors.newFixedThreadPoo(clss.length);

for(int i=0;i<list.length;i++){

Class cls = Class.forName(list[i]);

Object service=cls.newInstance(obj);
//此处需将Object强制转型为Runnable

parallelTest.execute((Runnable)service);

}

[/code]