@Autowired
private RedisActiveTestsMapper redisActiveTestsMapper;
public List<List<RedisActiveTests>> selectMult(RedisActiveTests redisActiveTests) {
System.out.println("----程序开始运行----");
Date date1 = new Date();
int taskSize = 10;
// 创建一个线程池
ExecutorService pool = Executors.newFixedThreadPool(taskSize);
// 创建多个有返回值的任务
List<Future> list = new ArrayList<Future>();
for (int i = 0; i < taskSize; i++) {
Callable c = new ThredQuery(redisActiveTestsMapper);
// 执行任务并获取Future对象
Future f = pool.submit(c);
// System.out.println(">>>" + f.get().toString());
list.add(f);
}
// 关闭线程池
pool.shutdown();
// 获取所有并发任务的运行结果
for (Future f : list) {
// 从Future对象上获取任务的返回值,并输出到控制台
try {
String s = f.get().toString();
System.out.println(">>>" +s );
}catch (Exception e){
}
}
Date date2 = new Date();
System.out.println("----程序结束运行----,程序运行时间【" + (date2.getTime() - date1.getTime()) + "毫秒】");
return new ArrayList<>();
public class ThredQuery implements Callable<Object>
{
private RedisActiveTestsMapper redisActiveTestsMapper;
public ThredQuery(RedisActiveTestsMapper redisActiveTestsMapper) {
this.redisActiveTestsMapper = redisActiveTestsMapper;
}
@Override
public Object call() throws Exception {
int i=1;
System.out.println(">>>" + i + "任务启动");
Date dateTmp1 = new Date();
Thread.sleep(1000);
Date dateTmp2 = new Date();
long time = dateTmp2.getTime() - dateTmp1.getTime();
List<RedisActiveTests> selectnan = redisActiveTestsMapper.selectnan(new RedisActiveTests());
System.out.println(">>>" + i + "任务终止");
i++;
return JSONArray.toJSONString(selectnan) + "任务返回运行结果,当前任务时间【" + time + "毫秒】";
}
}
从数据库查询20w数据太慢,怎么用多线程并行查询汇总list集合
有这么一个需求,数据库20w数据,如果直接从数据库一次性读取比较慢,怎么用多线程 分批次并行读取,然后将List<entity>结果汇总
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
3条回答
为你推荐
- QT多线程共享数据,但线程耗时不同
- c++
- 1个回答
- 为什么多线程处理一个集合反而还不如单线程处理速度运行快
- MySQL 向数据库中更新数据,会影响全文索引的查询速度吗?
- mysql
- 2个回答
- 为什么多线程给list添加内容,最后返回为空?
- java
- 6个回答
- 多线程读数据库操作,为什么我的代码执行起来比原来还慢呢
- MySql 千万级数据量 查询很慢
- springboot 多线程 获取不到 service 空对象 无法执行更新数据库
- 线程从concurrentMap读取到指定key的值时不向集合写数据,下面的代码存在多个线程写数据
- java
- 1个回答
- 如何用java单用户多线程查询数据库?
- 0个回答
- 接收别人推送的数据,存入数据库 sqlserver
- 5个回答
- java多线程并发访问sqlite数据库如何同步和加锁
- unity中如何用多线程或者协程解决耗时函数(具有参数和返回值)问题
- 2个回答
- 有一个表数据量每天存入数据3百万左右,现在千万级,要筛选表里一些数据,怎么查才能速度快一点
- 14个回答
- Python 使用多线程写入数据库,报错
- python
- 5个回答
- 为什么启用多线程往sdb插入数据时,出现数据重复插入的情况?
- 4个回答
- java 求四千多用户的某一排名 如何用多线程 优化for循环
- 8个回答
- java多线程高并发下的oracle数据库异常
- MFC多线程如果出现故障,数据保存可以借助于什么数据结构?
- 2个回答
- 多线程查询数据的问题
- 3个回答
- java 多线程 出现数据重复调用问题
- java
- 3个回答