j'ava使用threadpoolexecutors创建线程池,使用多线程的方式,执行list集合数据
时间: 2024-03-03 09:50:39 浏览: 125
Android 文件下载功能Java多线程下载功能的例子实例源码.zip
好的,使用多线程的方式执行list集合数据,可以在Runnable对象中实现具体的任务逻辑,并通过线程池来管理多个线程的执行。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个包含5个线程的线程池
ExecutorService executor = new ThreadPoolExecutor(5, 5,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
// 创建一个包含10个元素的List集合
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
list.add(i);
}
// 执行任务
for (Integer element : list) {
executor.execute(new MyRunnable(element));
}
// 关闭线程池
executor.shutdown();
}
static class MyRunnable implements Runnable {
private Integer element;
public MyRunnable(Integer element) {
this.element = element;
}
@Override
public void run() {
System.out.println("正在处理元素:" + element);
}
}
}
```
在这个示例中,我们定义了一个MyRunnable类,实现了Runnable接口,并在run()方法中实现了具体的任务逻辑。然后,我们使用for-each循环遍历List集合中的每个元素,并创建一个MyRunnable对象,并将其提交给线程池去执行。在MyRunnable的构造函数中,我们将List集合中的元素作为参数传入,并保存在成员变量中,在run()方法中使用。最后,我们关闭了线程池,等待所有任务都完成。
阅读全文