线程池入库的操作。构造线程池,创建任务,分批入库,要判断线程是否执行完毕。如CountDownLatch,AtomicInteger 等原子性操作。本文是用ConuntDownLatch。
创建线程池
package com.test.wyl;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class test {
public static void exec(List<String> list) throws InterruptedException{
int count = 300; //一个线程处理300条数据
int listSize = list.size(); //数据集合大小
int runSize = (listSize/count)+1; //开启的线程数
List<String> newlist = null; //存放每个线程的执行数据
ExecutorService executor = Executors.newFixedThreadPool(runSize); //创建一个线程池,数量和开启线程的数量一样
//创建两个个计数器
CountDownLatch begin = new CountDownLatch(1);
CountDownLatch end = new CountDownLatch(runSize);
//循环创建线程
for (int i = 0; i < runS

本文展示了如何使用Java并发工具类CountDownLatch来实现线程池处理批量数据入库。通过创建固定大小的线程池,将数据分批分配给线程,每个线程处理一部分数据并确保所有线程执行完毕后再关闭线程池,从而保证数据入库的并发与同步。
最低0.47元/天 解锁文章
1395

被折叠的 条评论
为什么被折叠?



