java 中for循环多线程写法
时间: 2023-10-12 18:50:26 浏览: 246
在Java中,可以使用多线程来实现并行执行的for循环。以下是一个示例代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MultiThreadedForLoop {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 创建一个固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(4);
// 定义每个线程负责处理的元素数量
int chunkSize = array.length / executor.getMaximumPoolSize();
// 循环提交任务给线程池
for (int i = 0; i < array.length; i += chunkSize) {
int startIndex = i;
int endIndex = Math.min(i + chunkSize, array.length);
// 提交任务给线程池
executor.submit(() -> {
for (int j = startIndex; j < endIndex; j++) {
// 在这里编写需要执行的代码
System.out.println("Thread " + Thread.currentThread().getName() + ": " + array[j]);
}
});
}
// 关闭线程池
executor.shutdown();
}
}
```
在上述示例中,我们使用`ExecutorService`来创建一个固定大小的线程池,这里设置为4个线程。然后,我们将任务分成多个块,每个线程负责处理一个块的元素。通过调用`executor.submit()`方法来提交任务给线程池执行。
请注意,多线程执行的结果可能不是按照数组元素的顺序输出的,因为线程的执行是异步的。如果需要按照顺序输出,可以在每个线程的任务完成后使用`CountDownLatch`或`join()`方法等待其他线程执行完毕。
阅读全文