一种实现并发调用支持分页参数的接口的方法技术

技术编号:35350832 阅读:22 留言:0更新日期:2022-10-26 12:18
本发明专利技术公开一种实现并发调用支持分页参数的接口的方法,涉及Java多线程技术领域;获取分页参数接口总数据量大小以及每页数据量大小,根据所述总数据量大小以及每页数据量大小确定总共的页码数量,初始化Java原子变量对象页码数量,用于存储分页参数接口请求的页码数量,创建多个线程共享Java原子变量对象页码数量,并利用相应Java原子类方法获取各自请求的页码数量,通过线程根据各自的页码数量对分页参数接口进行调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。数接口的调用。数接口的调用。

【技术实现步骤摘要】
一种实现并发调用支持分页参数的接口的方法


[0001]本专利技术公开一种方法,涉及Java多线程
,具体地说是一种实现并发调用支持分页参数的接口的方法。

技术介绍

[0002]现有的对支持分页参数接口的调用方式有单线程的逐页调用和线程池任务切分调用。单线程的逐页调用方式简洁且可靠的,无需担心对数据的重复调用,但在某些时效性要求较高且数据较多的请求中,耗时过长无法保证数据的时效性。而基于Java线程池来处理的线程池任务切分调用,通过多线程的并发操作实现对支持分页参数接口的并发调用,以便提高效率,但是如果请求的页数过多时,非常容易导致线程池中的任务队列过大从而触发线程池的饱和策略,存在终端抛出异常、部分任务被抛弃或者内存溢出的风险,降低了程序的健壮性。

技术实现思路

[0003]本专利技术针对现有技术的问题,提供一种实现并发调用支持分页参数的接口的方法,基于Java原子类的接口并发调用比单线程的任务调度效率更高,比线程池的任务切分调度实现更简单,同时提升程序的健壮性。
[0004]本专利技术提出的具体方案是:
[0005]本专利技术提供一种实现并发调用支持分页参数的接口的方法,获取分页参数接口总数据量大小以及每页数据量大小,
[0006]根据所述总数据量大小以及每页数据量大小确定总共的页码数量,
[0007]初始化Java原子变量对象页码数量,用于存储分页参数接口请求的页码数量,
[0008]创建多个线程共享Java原子变量对象页码数量,并利用相应Java原子类方法获取各自请求的页码数量,通过线程根据各自的页码数量对分页参数接口进行调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。
[0009]进一步,所述的一种实现并发调用支持分页参数的接口的方法中所述获取分页参数接口总数据量大小以及每页数据量大小,包括:
[0010]向分页参数接口请求获取分页参数接口总数据量大小以及每页数据量大小。
[0011]进一步,所述的一种实现并发调用支持分页参数的接口的方法中所述利用相应Java原子类方法获取各自请求的页码数量,包括:
[0012]利用Java原子类的getAndIncrement方法获取线程各自请求的页码数量,并对页码数量进行计数。
[0013]进一步,所述的一种实现并发调用支持分页参数的接口的方法中所述通过线程根据各自的页码数量对分页参数接口进行调用,包括:
[0014]通过线程处理完一次调用请求之后继续获取共享的Java原子变量对象页码数量,继续进行分页参数接口的调用,直至共享的Java原子变量对象页码数量达到总共的页码数
量,结束分页参数接口的调用。
[0015]本专利技术还提供一种实现并发调用支持分页参数的接口的系统,包括分析计算模块和调用模块,
[0016]分析计算模块获取分页参数接口总数据量大小以及每页数据量大小,根据所述总数据量大小以及每页数据量大小确定总共的页码数量,初始化Java原子变量对象页码数量,用于存储分页参数接口请求的页码数量,
[0017]调用模块创建多个线程共享Java原子变量对象页码数量,并利用相应Java原子类方法获取各自请求的页码数量,通过线程根据各自的页码数量对分页参数接口进行调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。
[0018]进一步,所述的一种实现并发调用支持分页参数的接口的系统中所述分析计算模块获取分页参数接口总数据量大小以及每页数据量大小,包括:
[0019]向分页参数接口请求获取分页参数接口总数据量大小以及每页数据量大小。
[0020]进一步,所述的一种实现并发调用支持分页参数的接口的系统中所述分析计算模块利用相应Java原子类方法获取各自请求的页码数量,包括:
[0021]利用Java原子类的getAndIncrement方法获取线程各自请求的页码数量,并对页码数量进行计数。
[0022]进一步,所述的一种实现并发调用支持分页参数的接口的系统中所述调用模块通过线程根据各自的页码数量对分页参数接口进行调用,包括:
[0023]通过线程处理完一次调用请求之后继续获取共享的Java原子变量对象页码数量,继续进行分页参数接口的调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。
[0024]本专利技术的有益之处是:
[0025]本专利技术提供一种实现并发调用支持分页参数的接口的方法,利用Java原子类底层的内存可见性,无需加锁可以保障线程的安全性,通过Java原子类的共享变量,线程之间无需进行切换获取共享变量完成接口的下次调用,从而提高了程序的效率,同时无需像线程池那样对任务进行切割,所以不存在任务过大而导致的终端抛出异常、部分任务被抛弃或者内存溢出的风险,保障程序的健壮性。
附图说明
[0026]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027]图1是本专利技术方法流程示意图。
具体实施方式
[0028]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0029]本专利技术提供一种实现并发调用支持分页参数的接口的方法,获取分页参数接口总
数据量大小以及每页数据量大小,
[0030]根据所述总数据量大小以及每页数据量大小确定总共的页码数量,
[0031]初始化Java原子变量对象页码数量,用于存储分页参数接口请求的页码数量,
[0032]创建多个线程共享Java原子变量对象页码数量,并利用相应Java原子类方法获取各自请求的页码数量,通过线程根据各自的页码数量对分页参数接口进行调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。
[0033]本专利技术方法利用Java原子类底层的内存可见性以及CAS(Compare And Swap)算法,无需加锁就可以保障线程的安全性。通过Java原子类的共享变量,线程之间无需进行切换,一个线程在进行完一次接口的调用之后可以立即去获取共享变量完成接口的下次调用,从而提高了程序的效率。因为无需像线程池那样对任务进行切割,所以不存在任务过大而导致的终端抛出异常、部分任务被抛弃或者内存溢出的风险。
[0034]具体应用中,在本专利技术方法的一些实施例中,可以参考如下过程:
[0035]步骤1:对分页参数接口进行一次请求获取到总的数据量大小以及每页可请求的数据量大小,
[0036]步骤2:根据总的数据量大小以及每页可请求的数据量大小来确定总共需要请求的页码总数即需要本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现并发调用支持分页参数的接口的方法,其特征是获取分页参数接口总数据量大小以及每页数据量大小,根据所述总数据量大小以及每页数据量大小确定总共的页码数量,初始化Java原子变量对象页码数量,用于存储分页参数接口请求的页码数量,创建多个线程共享Java原子变量对象页码数量,并利用相应Java原子类方法获取各自请求的页码数量,通过线程根据各自的页码数量对分页参数接口进行调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。2.根据权利要求1所述的一种实现并发调用支持分页参数的接口的方法,其特征是所述获取分页参数接口总数据量大小以及每页数据量大小,包括:向分页参数接口请求获取分页参数接口总数据量大小以及每页数据量大小。3.根据权利要求1所述的一种实现并发调用支持分页参数的接口的方法,其特征是所述利用相应Java原子类方法获取各自请求的页码数量,包括:利用Java原子类的getAndIncrement方法获取线程各自请求的页码数量,并对页码数量进行计数。4.根据权利要求1所述的一种实现并发调用支持分页参数的接口的方法,其特征是所述通过线程根据各自的页码数量对分页参数接口进行调用,包括:通过线程处理完一次调用请求之后继续获取共享的Java原子变量对象页码数量,继续进行分页参数接口的调用,直至共享的Java原子变量对象页码数量达到总共的页码数量,结束分页参数接口的调用。5.一种实现并发调用支持分页参数的接口的系统,...

【专利技术属性】
技术研发人员:刘峰王柏华赵绍祥黄磊
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1