在我的项目中,有 3 个类扩展了 Thread,每个类都对整数进行一些计算。我需要运行它们以获取所有三个计算值。这个过程需要对一定范围内的所有整数进行。
这是我的主题之一:
public class FactorialNumber extends Thread {
private int number;
public void setNumber(int number) {
this.number = number;
}
public void run() {
try {
sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print(NumbersOperations.getFactorial(number));
}
}
这是一种尝试启动线程的方法:
public static void getThreevalues() throws InterruptedException {
int startOfRange = getBorder("Enter the left border of range: ");
int endOfRange = getBorder("Enter the right border of range: ");
for(int i = startOfRange; i <= endOfRange; i++) {
PrimeNumber primeNumber = new PrimeNumber();
FibonachiNumber fibonachiNumber = new FibonachiNumber();
FactorialNumber factorialNumber = new FactorialNumber();
primeNumber.setNumber(i);
fibonachiNumber.setNumber(i);
factorialNumber.setNumber(i);
System.out.print("Number: " + i);
System.out.print(" is prime number ");
primeNumber.start();
System.out.print(". Fibonachi - " );
fibonachiNumber.start();
System.out.print(". Factorial - ");
factorialNumber.start();
System.out.println();
}
}
运行我的代码后,我得到了这个:
Number: 3 is prime number . Fibonachi - . Factorial -
Number: 4 is prime number . Fibonachi - . Factorial -
Number: 5 is prime number . Fibonachi - . Factorial -
Number: 6 is prime number . Fibonachi - . Factorial -
true2hi6falsetrue5hi2483falsehi720hi120
据我了解, start() 不调用 run() 方法。在我的运行方法中有sleep(500),但结果只是出现在控制台中,没有任何睡眠。
我会很感激任何帮助,因为我已经在这些东西上花费了太多时间,不幸的是没有解决问题。