Java写在一个线程中求100以内素数,求出后休眠一个随机时间。在另一线程中求100以内能被3整除的数,求出后休眠一个随机时间。输出数据时应有提示,指明哪个线程输出的数据。
时间: 2024-03-05 21:54:02 浏览: 65
好的,这是一个多线程的问题,需要用到Java中的线程相关知识。
下面是代码实现:
```java
public class Main {
public static void main(String[] args) {
PrimeThread primeThread = new PrimeThread();
DivisibleThread divisibleThread = new DivisibleThread();
primeThread.start();
divisibleThread.start();
}
}
class PrimeThread extends Thread {
public void run() {
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
System.out.println("PrimeThread: " + i);
try {
Thread.sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
private boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
class DivisibleThread extends Thread {
public void run() {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
System.out.println("DivisibleThread: " + i);
try {
Thread.sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
```
上面代码中,我们定义了两个线程类 `PrimeThread` 和 `DivisibleThread`,分别用于求100以内的素数和能被3整除的数。
在 `PrimeThread` 中,我们使用 `isPrime()` 方法判断一个数是否是素数,然后输出结果和提示信息,最后休眠一个随机时间。在 `DivisibleThread` 中,我们直接判断一个数是否能被3整除,然后输出结果和提示信息,最后休眠一个随机时间。
在 `Main` 类中,我们创建了 `PrimeThread` 和 `DivisibleThread` 的实例,并启动线程。
运行代码后,你会看到两个线程交替输出结果和提示信息。
阅读全文