所以下面是一个使用多线程的简单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;