[英]Create multiple Java Threads at once
是否可以按以下方式创建线程,
Thread odjhygThread= new Thread(objJob1, objJob2);
我想我们不能,如果我们想创造需要做的事情? 有人知道答案吗? 提前致谢。
线程运行一项工作。 这就是他们的设计方式。
如果要运行两个作业,请使用两个线程。
如果要移交两个要在后台运行的作业,请阅读Executors类的JavaDocs和ThreadPoolExecutor类。 花费一些时间来解决这些问题,但是不幸的是,这是Java多线程的本质。 复杂。
我不确定这不是您的目标,但是..创建一个扩展Thread的类,并为其提供一个带有2个参数的c'tor。
是的(除非我在这里丢失了一些东西)
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
}
}
我假设您已经意识到使用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.的回答。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.