ironknight 2010-08-03 20:58
浏览 272
已采纳

如何根据类名列表动态创建执行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的类,就像一个测试类列表,通过以上或类似的方法来实现并发执行呢?

望赐教,谢谢。

  • 写回答

4条回答 默认 最新

  • nxyc_twz 2010-08-05 10:04
    关注

    [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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料