采用实现runnable接口的多线程技术,用50个线程,生成10000个[1~100000]的随机整数
时间: 2024-12-17 07:34:32 浏览: 8
在Java中,我们可以利用`Runnable`接口和`Thread`类来创建多线程任务,特别是当任务可以独立运行并共享资源时。这里是一个简单的例子,展示如何创建50个线程,每个线程生成1到100000之间的随机整数:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.Random;
public class RandomNumberGenerator implements Runnable {
private int randomNum;
public RandomNumberGenerator(int num) {
this.randomNum = num;
}
@Override
public void run() {
Random rand = new Random();
System.out.println(Thread.currentThread().getName() + ": " + rand.nextInt(100000) + " (1-" + randomNum + ")");
}
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(50); // 创建50个线程池
for (int i = 1; i <= 10000; i++) { // 生成10000个任务
executor.execute(new RandomNumberGenerator(i)); // 提交每个任务给线程池
}
executor.shutdown(); // 关闭线程池
while (!executor.isTerminated()) { // 等待所有任务完成
// 这里通常会添加一些超时处理,这里简化了
}
}
}
```
在这个程序中,我们首先创建了一个`RandomNumberGenerator`类实现了`Runnable`接口,每个实例都会生成一个随机数。然后,在`main`函数中,我们创建了一个固定大小的线程池,并提交了10000个这样的任务。每个线程会在其`run`方法中独立运行。
阅读全文