一次创建多个Java线程

时间:2009-06-09 06:34:17

标签: java

是否有可能按如下方式创建线程,

Thread odjhygThread= new Thread(objJob1, objJob2);

我想我们不能,如果我们想要创造需要做的事情? 有谁知道答案?提前谢谢。

4 个答案:

答案 0 :(得分:4)

线程运行一个作业。这就是他们设计的方式。

如果您尝试运行两个作业,请使用两个线程。

如果要移交两个要在后台运行的作业,请阅读Executors类和ThreadPoolExecutor类的JavaDocs。你需要花一些时间来了解它们,但不幸的是,这是Java中多线程的本质。复杂。

答案 1 :(得分:2)

我不确定这是你的目标但是..创建一个扩展Thread的类,并给它一个带有2个参数的c'tor。

答案 2 :(得分:0)

是(除非我在这里遗漏了什么)

public class MyThread extends Thread {
    private final Object object1;
    private final Object object2;

    public MyThread(Object o1, Object o2) {
        //implicate call to super()
        object1 = o1;
        object2 = o2;
    }
    @Override
    public void run() {
        //ha ha
        //he he
        //ho ho
        //off to work we go
    }
}

答案 3 :(得分:0)

我假设您已经知道将Runnable作为参数的Thread构造函数。您是否尝试在两个不同的Runnable对象上创建调用run()的线程?这不存在,但写起来很容易:

public class RunTwoThings implements Runnable {

  private Runnalbe thing1;
  private Runnable thing2;

  public RunTwoThings(Runnable thing2, Runnable thing2) {
    this.thing1 = thing1;
    this.thing2 = thing2;
  }

  public void run() {
    thing1.run();
    thing2.run();
  }

}

您可能希望进行一些异常处理,以防止thing1中的问题阻止执行thing2。然后,只需创建一个新的线程:

Thread odjhygThread= new Thread(new RunTwoThings(objJob1, objJob2));

如果那不是你想要做的事情(例如,如果你想让它们同时在他们自己的线程中运行),你可能想要Steve M.的回答。