用Java语言实现以下内容:构造三个线程对象,分别输出80以内的2、3、5的倍数。让程序执行3次,对3次运行结果进行分析。
时间: 2024-03-01 20:50:03 浏览: 20
以下是用Java语言实现构造三个线程对象,分别输出80以内的2、3、5的倍数,并执行3次的代码:
```java
public class MultiplesThread implements Runnable {
private int multiple;
public MultiplesThread(int multiple) {
this.multiple = multiple;
}
@Override
public void run() {
for (int i = 1; i <= 80; i++) {
if (i % multiple == 0) {
System.out.print(i + " ");
}
}
System.out.println();
}
}
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 3; i++) {
System.out.println("第" + i + "次运行结果:");
Thread thread1 = new Thread(new MultiplesThread(2));
Thread thread2 = new Thread(new MultiplesThread(3));
Thread thread3 = new Thread(new MultiplesThread(5));
thread1.start();
thread2.start();
thread3.start();
try {
thread1.join();
thread2.join();
thread3.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
程序会输出3次的结果,每次输出的结果分别是80以内的2、3、5的倍数,因为每个线程输出的都是不同的倍数,所以输出的结果是无序的。每个线程输出的结果之间会有空格隔开,方便观察。如果想更好地观察每个线程输出的结果,可以将每个线程的输出放在一起,这样就可以看到每个线程输出的结果是有序的。
对于每次运行结果的分析,由于每个线程输出的都是不同的倍数,所以每次的输出结果都是不同的。但是可以发现,每个线程输出的结果都是80以内的数字,且每个数字都是对应倍数的倍数,这说明每个线程都能正确地输出对应倍数的倍数。在多线程编程中,由于线程是并发执行的,所以每次输出的结果都可能是不同的,但是每个线程的输出结果都是正确的。