帮我写一个java遍历的多线程代码
时间: 2023-08-28 12:33:27 浏览: 92
一个JAVA多线程实例
好的,以下是一个Java遍历的多线程代码示例:
```java
public class TraverseThread extends Thread {
private int start;
private int end;
public TraverseThread(int start, int end) {
this.start = start;
this.end = end;
}
public void run() {
// 遍历从 start 到 end 的数据
for (int i = start; i < end; i++) {
System.out.println(i);
}
}
public static void traverseInThreads(int start, int end, int numThreads) {
// 计算每个线程需要遍历的数据范围
int step = (end - start) / numThreads;
List<TraverseThread> threads = new ArrayList<TraverseThread>();
// 将每个范围分配给一个线程
for (int i = 0; i < numThreads; i++) {
int threadStart = start + i * step;
int threadEnd = (i == numThreads - 1) ? end : threadStart + step;
TraverseThread thread = new TraverseThread(threadStart, threadEnd);
threads.add(thread);
}
// 启动所有线程
for (TraverseThread thread : threads) {
thread.start();
}
// 等待所有线程结束
for (TraverseThread thread : threads) {
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// 测试代码
public static void main(String[] args) {
TraverseThread.traverseInThreads(0, 100, 4);
}
}
```
以上代码将数据范围从 start 到 end 分成 numThreads 个部分,分配给 numThreads 个线程并行遍历,最终输出所有遍历的数据。
阅读全文