用java定义一个线程类,用户输出前n个正整数。要求:将n个数划分为m个部分。第i个线程输出n个整数中的第i部分。
时间: 2023-08-17 10:06:08 浏览: 47
可以定义一个继承Thread类的线程类,代码如下:
```java
public class NumberThread extends Thread {
private int n; // 总共要输出的正整数个数
private int m; // 分成m个部分
private int i; // 第i个线程
private int partSize; // 每部分的大小
public NumberThread(int n, int m, int i) {
this.n = n;
this.m = m;
this.i = i;
this.partSize = (int) Math.ceil((double) n / m); // 向上取整,计算每部分的大小
}
@Override
public void run() {
int start = (i - 1) * partSize + 1; // 计算该线程要输出的第一个正整数
int end = Math.min(i * partSize, n); // 计算该线程要输出的最后一个正整数
for (int j = start; j <= end; j++) {
System.out.println(j);
}
}
}
```
在主方法中创建m个线程,每个线程输出对应部分的正整数。代码如下:
```java
public class Main {
public static void main(String[] args) {
int n = 100; // 总共要输出的正整数个数
int m = 5; // 分成m个部分
Thread[] threads = new Thread[m];
for (int i = 1; i <= m; i++) {
threads[i - 1] = new NumberThread(n, m, i);
threads[i - 1].start();
}
// 等待所有线程执行完毕
for (int i = 0; i < m; i++) {
try {
threads[i].join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
以上代码实现了将n个数划分为m个部分,第i个线程输出n个整数中的第i部分。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)