ForkJoin并发框架实战,大数据处理同步

本文介绍了ForkJoin并发框架的工作原理,它基于工作偷取算法,通过数据拆分和线程队列实现高并发处理。在实际应用场景中,ForkJoin用于同步区块链数据到MySQL数据库,提高了数据处理效率,达到每6秒处理1万条记录,比传统线程处理快约10倍。此外,ForkJoin避免了线程安全问题,确保了并发情况下数组处理的一致性。
摘要由CSDN通过智能技术生成

我粗略讲下关于ForkJoin的原理,ForkJoin框架是一个基于工作偷取算法的高并发框架。其主要的原理就是把要处理的数据,进行拆分,拆分之后再压入线程队列,然后下一级的线程队列再拆分,知道满足临界值的要求,然后对满足临界值的数据执行对应的操作。并且,ForkJoin框架里面有对应的ForkJoinPool管理线程,进行GC,然后其工作偷取算法会让空闲的线程A,去B线程的队列尾部偷取任务并执行。
关于java 1.8 新特性ForkJoin的源码剖析的详细介绍可以参考这篇文章
https://www.jianshu.com/p/f777abb7b251
下面我简要说下我的使用场景,关于同步区块链数据到mysql数据库。
贴一下主要的源码
这是设置ForkJoin要执行的任务
RecursiveTask Object 就是需要处理的数据对象。

public class ForkJoinWork extends RecursiveTask<List<Txs>> {

    private Integer start;//起始值
    private Integer end;//结束值
    private List<Txs> TxsAll;//操作的对象数组
    public static final  Integer critical = 100;//临界值
    TxsService txsService = (TxsService)AllBean.getBean("TxsService");
    public ForkJoinWork(Integer start, Integer end,List<Txs> TxsAll) {
        this.start =
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值