是这样的:
我写了几个类Thread_a,Thread_b,Thread_c都是如public class Thread_a extends Thread这样的
但是这样的类有很多个,而且我不确定他们的个数和类名,
但是我已经把他们的类名保存在数据库中,通过访问数据库来确定他们的个数和具体名字,
如把他们的名字保存到一个List中,通过list.size(),list.get()得到个数和类名,
现在我要想在另外一个程序中启动这些线程该怎么写呢?

解决方案 »

  1.   

    那就new 这个类,然后start()
      

  2.   

    Thread a = new (Thread)list.get(i);
    a.start()试试
      

  3.   

    使用反射try {
    for (String threadClassName: threadNameList) {
    Thread foo = (Thread)Class.forName(threadClassName).newInstance();
    foo.start();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
      

  4.   

    不好意思,我还是没弄懂
    我根据3楼的改写成这样//package threadbean
    //Job.java
    List list=new ArrayList();
    list.add(new String("threadbean.Thread_a"));
    list.add(new String("threadbean.Thread_b"));
    list.add(new String("threadbean.Thread_c"));
    list.add(new String("threadbean.Thread_d"));
    list.add(new String("threadbean.Thread_ab"));String threadClassName="";
    for (int i=0;i<list.size();i++) {
       threadClassName =(String)list.get(i);
       Thread foo = (Thread)Class.forName(threadClassName).newInstance();
       foo.start();
    }编译是没有错了运行也成功了,感谢各位帮忙,可是还能不能问一下弱弱的问题,就是因为这些文件我全是放在同一目录里的
    现在,如果我把Thread_a,Thread_b这几个文件放在和threadbean同一级的目录,这又要怎么运行呢?
    比如Thread_a放在jobbean文件夹下,threadbean和jobbean在同一级目录
    这时list.add(new String("threadbean.Thread_a"));中的"threadbean.Thread_a"要改成什么?(这问题有点弱智,但是我真的不会)