簡體   English   中英

一次創建多個Java線程

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM