用java在一个线程中求100以内素数,求出后休眠一个随机时间。在另一线程中求100以内能被3整除的数,求出后休眠一个随机时间。输出数据时应有提示,指明哪个线程输出的数据
时间: 2024-03-05 17:50:28 浏览: 58
好的,您的问题是如何用Java在两个线程中分别求100以内的素数和能被3整除的数,并在求出后休眠随机时间,输出时指明哪个线程输出的数据。
以下是实现该功能的示例代码:
```java
import java.util.Random;
public class Main {
public static void main(String[] args) {
Thread primeThread = new Thread(new PrimeRunnable());
Thread divisibleByThreeThread = new Thread(new DivisibleByThreeRunnable());
primeThread.start();
divisibleByThreeThread.start();
}
}
class PrimeRunnable implements Runnable {
@Override
public void run() {
System.out.println("正在计算100以内的素数...");
for (int i = 2; i <= 100; i++) {
boolean isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.println("素数:" + i);
try {
Thread.sleep(new Random().nextInt(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
class DivisibleByThreeRunnable implements Runnable {
@Override
public void run() {
System.out.println("正在计算100以内能被3整除的数...");
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
System.out.println("能被3整除的数:" + i);
try {
Thread.sleep(new Random().nextInt(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
```
在该示例代码中,我们创建了两个线程,一个用于计算100以内的素数,另一个用于计算100以内能被3整除的数。每个线程执行自己的任务,并在每次输出数据后休眠一个随机时间,以模拟实际情况。同时,每次输出数据时都会显示是哪个线程输出的数据,以便区分不同线程的输出。
阅读全文