使用生产者和消费者算法加速数据处理

应用场景

数据库里有1120万条数据需要一个不漏的全部处理,然后将处理后的数据再次保存在数据库中。如果数据量小的话,取出来后挨个处理挨个进行保存即可,此时我们面对的是千万级别的大批量的数据,挨个处理挨个保存这种顺序方法非常耗时,不可行。
在这里插入图片描述

方法使用

此时可以选择一个生产者和消费者思路进行处理,如下图顺序方法和生产者消费者方法的对比。
顺序执行的耗时模型处理数据处理数据完成后才可以执行保存数据,耗时是叠加;生产消费方法执行耗时是生产数据消费数据方法并行的执行状态,消耗时间取决于哪个最后执行完成(此图中生产数据执行时间最长)。
在这里插入图片描述

首先创建线程安全的队列,用于生产者和消费者的数据传递。生产者在处理完成一条数据后,把数据放入队列中,消费者不断的检查队列中是否存在数据,如果存在数据就进行取出处理后保存。

private Queue<RelateCountMatrixEntity> queue = new ConcurrentLinkedQueue<>(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值