所以下面是一个使用多线程的简单Java类,我的问题是,有没有办法让我存储每个线程中的randomNumber(也许在一个名为randomNumberOne或randomNumberTwo的变量中),以便我可以使用它们来获取总和两者并返回吗?
我知道这个例子听起来很愚蠢,但是基本上我的真实代码是我从每个线程中返回一个值,并希望得到它们的平均值。我还没有找到用于在Java中的线程中返回值的任何解决方案(也是我完全不熟悉多线程)。

public class Example {
  public static void main(String[] args){
    MathThread one = new MathThread();
    MathThread two = new MathThread();

    one.start();
    two.start();
  }
}

class MathThread extends Thread{
   public MathThread(){
   }

public void run(){
    Random rand = new Random();

    int randomNumber = rand.nextInt((100 - 1) + 1) + 1;
    System.out.println(randomNumber);
}


输出量

5
33

最佳答案

将结果变量添加到您的MathThread类中,并在join线程后获取值:

class MathThread extends Thread
{
    private int result;
    public int getResult()
    {
       this.join();
       return result;
    }

    public void run()
    {
       // ...

       result = randomNumber;
    }
}

one.start();
two.start();

double average = (one.getResult() + two.getResult()) / 2.0;

10-06 09:14