是否有可能按如下方式创建线程,
Thread odjhygThread= new Thread(objJob1, objJob2);
我想我们不能,如果我们想要创造需要做的事情? 有谁知道答案?提前谢谢。
答案 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.的回答。