使用阻塞式队列处理大数据

这篇博客探讨了传统阻塞式导入大数据的缺点,如速度慢和内存开销大,并提出了一种使用BlockingQueue的多线程非阻塞式解决方案。通过详细解释核心代码和给出完整的框架示例,包括读文件、处理队列中的项以及关键的XLSXParser,作者展示了如何优化大数据处理,确保内存恒定和提高处理速度。此外,还讨论了如何对多线程处理过程进行计时以及如何扩展以支持更多文件格式。
摘要由CSDN通过智能技术生成

前言

我们都知道,JAVA对于文本文件在读时是独占的,即使可以用多线程去读也涉及到一个POS(定位读)的问题,这在设计框架上会带来许多的复杂性,同时也带来代码上的不可维护性以及会经常出一些千奇百怪的错误(多线程程序由其如此)。


传统阻塞式做法的敝病

  • 特点:多线程,阻塞式导入
  • 缺点:阻塞式,导入速度慢,线程状态无法精确记录,速度慢内存开销大

优秀的做法

  • 多线程
  • 非阻塞式
  • 内存开销恒定
  • 线程可以自由增加

我们将采用的做法

在数据提取的设计时基于以下几个指标考虑:

1)内存占用数始终必须恒定值

2&#x

  • 17
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 33
    评论
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TGITCIC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值