Java编程一个程序,4个线程同时向一个10000位的数组中分别写入1-10,100-1000,2000-3000,4000-5000的数。
时间: 2024-02-28 15:55:34 浏览: 78
java线程编程
下面是一个可能的 Java 程序实现,它创建了 4 个线程,每个线程负责向数组的不同段写入特定的数:
```java
public class ArrayWriter {
public static void main(String[] args) {
final int ARRAY_SIZE = 10000;
final int SEGMENT_1_START = 0;
final int SEGMENT_1_END = 9;
final int SEGMENT_2_START = 100;
final int SEGMENT_2_END = 999;
final int SEGMENT_3_START = 2000;
final int SEGMENT_3_END = 3000;
final int SEGMENT_4_START = 4000;
final int SEGMENT_4_END = 5000;
int[] array = new int[ARRAY_SIZE];
Thread t1 = new Thread(() -> {
for (int i = SEGMENT_1_START; i <= SEGMENT_1_END; i++) {
array[i] = i + 1;
}
});
Thread t2 = new Thread(() -> {
for (int i = SEGMENT_2_START; i <= SEGMENT_2_END; i++) {
array[i] = i + 1;
}
});
Thread t3 = new Thread(() -> {
for (int i = SEGMENT_3_START; i <= SEGMENT_3_END; i++) {
array[i] = i + 1;
}
});
Thread t4 = new Thread(() -> {
for (int i = SEGMENT_4_START; i <= SEGMENT_4_END; i++) {
array[i] = i + 1;
}
});
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("Array contents:");
for (int i = 0; i < ARRAY_SIZE; i++) {
System.out.println(array[i]);
}
}
}
```
该程序首先声明了一些常量,包括数组大小和每个线程负责写入的数组段。然后它创建了一个大小为 10000 的整数数组,并创建了 4 个线程,每个线程都使用 Lambda 表达式来写入它负责的数组段。最后,该程序等待所有线程完成,并打印数组内容。
阅读全文