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