编写一个java程序实现4个线程同时向一个10000位的数组中分别写入1-10,100-1000,2000-3000,4000-5000的数。
时间: 2024-01-13 19:05:56 浏览: 88
下面是一个实现该功能的Java程序,使用了4个线程同时向同一个10000位的数组中写入不同范围的数字:
```
import java.util.Arrays;
public class ThreadWriteArray {
private static int[] arr = new int[10000];
public static void main(String[] args) {
Thread t1 = new Thread(new WriteArrayThread(0, 10));
Thread t2 = new Thread(new WriteArrayThread(100, 1000));
Thread t3 = new Thread(new WriteArrayThread(2000, 3000));
Thread t4 = new Thread(new WriteArrayThread(4000, 5000));
t1.start();
t2.start();
t3.start();
t4.start();
try {
t1.join();
t2.join();
t3.join();
t4.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Arrays.toString(arr));
}
static class WriteArrayThread implements Runnable {
int start;
int end;
public WriteArrayThread(int start, int end) {
this.start = start;
this.end = end;
}
@Override
public void run() {
for(int i=start; i<=end; i++) {
arr[i] = i+1;
}
}
}
}
```
在该程序中,我们定义了一个静态数组 `arr`,并创建了4个线程,每个线程调用 `WriteArrayThread` 类的实例并传递不同的起始和结束索引。`WriteArrayThread` 类实现了 `Runnable` 接口,重写了 `run()` 方法,在指定的范围内向数组中写入数字。
主线程等待所有线程执行完毕后,打印出数组的内容。
阅读全文