一种基于多线程的连抽中奖概率测试的方法与终端技术

技术编号:32633659 阅读:51 留言:0更新日期:2022-03-12 18:08
本发明专利技术公开了一种基于多线程的连抽中奖概率测试的方法与终端;本发明专利技术根据用户请求,获取抽奖请求地址、请求参数、抽奖类型和线程数,并根据线程数创建抽奖子线程,抽奖子线程用于根据请求地址、请求参数和抽奖类型开启抽奖流程;通过ReentrantLock,使每一个抽奖子线程在开始抽奖前的预设进度点进入休眠状态,并在最后一个抽奖子线程到达进度点后唤醒所有抽奖子线程以同时进行抽奖,得到所有抽奖结果信息;对所有的抽奖结果信息进行统计;本发明专利技术能够根据用户提供的抽奖请求地址、请求参数、抽奖类型和线程数来进行抽奖,抽奖类型可以为多连抽,同时,通过ReentrantLock实现“集合点”功能,实现对高并发下的连抽情况进行模拟测试。试。试。

【技术实现步骤摘要】
一种基于多线程的连抽中奖概率测试的方法与终端


[0001]本专利技术涉及计算机
,特别涉及一种基于多线程的连抽中奖概率测试的方法与终端。

技术介绍

[0002]为了维持用户活跃度,提升品牌的热度和影响力,游戏项目或者软件项目均会定期策划各种运营活动。在运营活动中,基本上都涉及各种奖励。其中,抽奖活动对用户的吸引力最大。即使只有一次抽奖机会,也可能获得iPhone手机、运动手表等高价值的奖品,因此大部分用户都会积极参加活动赚取抽奖机会。随着活动的迭代升级,抽奖类型越来越多元化,从最初的抽奖,升级到10连抽(即点击1次十连抽,扣减10次抽奖机会,返回10个奖品)或N连抽。
[0003]随着活动的升级和玩家的大量参与,如何验证抽奖的概率准确性是保障活动成功的前提。所谓概率计算,通过人工统计、计算显然不现实,使用第三方的并发测试工具如Jmeter、LoadRunner等,只能计算单抽的概率,无法测试十连抽或N连抽的概率。普通的单元测试虽然可以测试,但不能模拟真实的线上情景,无法发现高并发下的抽奖问题,如高负载下可能存在响应失败率升高,中奖记录重复,中奖概率偏差大等问题。

技术实现思路

[0004]本专利技术所要解决的技术问题是:提供一种基于多线程的连抽中奖概率测试的方法与终端,能够对高并发下的连抽情况进行模拟测试。
[0005]为了解决上述技术问题,本专利技术采用的技术方案为:
[0006]一种基于多线程的连抽中奖概率测试的方法,包括步骤:
[0007]S1、根据用户请求,获取抽奖请求地址、请求参数、抽奖类型和线程数,并根据所述线程数创建抽奖子线程,所述抽奖子线程用于所述根据请求地址、所述请求参数和所述抽奖类型开启抽奖流程;
[0008]S2、通过ReentrantLock,使每一个所述抽奖子线程在开始抽奖前的预设进度点进入休眠状态,并在最后一个所述抽奖子线程到达所述进度点后唤醒所有所述抽奖子线程以同时进行抽奖,得到所有抽奖结果信息;
[0009]S3、对所有的所述抽奖结果信息进行统计。
[0010]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0011]一种基于多线程的连抽中奖概率测试的终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0012]S1、根据用户请求,获取抽奖请求地址、请求参数、抽奖类型和线程数,并根据所述线程数创建抽奖子线程,所述抽奖子线程用于所述根据请求地址、所述请求参数和所述抽奖类型开启抽奖流程;
[0013]S2、通过ReentrantLock,使每一个所述抽奖子线程在开始抽奖前的预设进度点进入休眠状态,并在最后一个所述抽奖子线程到达所述进度点后唤醒所有所述抽奖子线程以同时进行抽奖,得到所有抽奖结果信息;
[0014]S3、对所有的所述抽奖结果信息进行统计。
[0015]本专利技术的有益效果在于:本专利技术能够根据用户提供的抽奖请求地址、请求参数、抽奖类型和线程数来进行抽奖,抽奖类型可以为单抽、十连抽或其他数量的多连抽,同时,通过ReentrantLock实现“集合点”功能,在所有子线程到达集合点后同时开启抽奖,精确度可到毫秒级,从而对高并发下的连抽情况进行模拟测试。
附图说明
[0016]图1为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的流程图;
[0017]图2为本专利技术实施例的一种基于多线程的连抽中奖概率测试的终端的结构图;
[0018]图3为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的整体流程图;
[0019]图4为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的部分流程的详细流程图;
[0020]图5为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的部分日志展示图;
[0021]图6为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的抽奖结果部分展示图;
[0022]图7为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的检查子线程运行结果示意图;
[0023]图8为本专利技术实施例的一种基于多线程的连抽中奖概率测试的方法的异常或错误统计结果展示图;
[0024]标号说明:
[0025]1、一种基于多线程的连抽中奖概率测试的终端;2、处理器;3、存储器。
具体实施方式
[0026]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0027]请参照图1以及图3

8,一种基于多线程的连抽中奖概率测试的方法,包括步骤:
[0028]S1、根据用户请求,获取抽奖请求地址、请求参数、抽奖类型和线程数,并根据所述线程数创建抽奖子线程,所述抽奖子线程用于所述根据请求地址、所述请求参数和所述抽奖类型开启抽奖流程;
[0029]S2、通过ReentrantLock,使每一个所述抽奖子线程在开始抽奖前的预设进度点进入休眠状态,并在最后一个所述抽奖子线程到达所述进度点后唤醒所有所述抽奖子线程以同时进行抽奖,得到所有抽奖结果信息;
[0030]S3、对所有的所述抽奖结果信息进行统计。
[0031]从上述描述可知,本专利技术的有益效果在于:本专利技术能够根据用户提供的抽奖请求
地址、请求参数、抽奖类型和线程数来进行抽奖,抽奖类型可以为单抽、十连抽或其他数量的多连抽,同时,通过ReentrantLock实现“集合点”功能,在所有子线程到达集合点后同时开启抽奖,精确度可到毫秒级,从而对高并发下的连抽情况进行模拟测试。
[0032]进一步地,所述步骤S2具体为:
[0033]在每个抽奖子线程到达开始抽奖前的预设进度点时,通过ReentrantLock获取锁,并在获取成功后锁定,所述抽奖子线程进入休眠并释放锁;
[0034]在最后一个所述抽奖子线程到达的同时,唤醒所有休眠的所有所述抽奖子线程,使所有所述抽奖子线程在同一时间点进行抽奖,并得到抽奖结果信息。
[0035]由上述描述可知,抽奖子线程在到达预设进度点时,通过ReentrantLock获取锁进行锁定,进入休眠,等待最后一个抽奖子线程到达预设进度点后唤醒休眠的所有抽奖子线程,从而实现了“集合点”的功能,以同时开启抽奖。
[0036]进一步地,步骤S1中根据所述线程数创建抽奖子线程具体为:
[0037]根据所述线程数创建抽奖子线程,并额外创建一个检查子线程;
[0038]步骤S2和步骤S3之间还包括:
[0039]S21、每个所述抽奖子线程统计各自的所述抽奖结果信息中的各个奖品的中奖数量以及返回异常或出错信息的次数;
[0040]S22、由所述检查子线程根据抽奖类型和每个所述抽奖子线程所统计的各个奖品的中奖数量,统计重复的中奖记录。
[0041]由上述描述可知,还创建了一个检查子线程,由检查子线程进行重复中奖记本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多线程的连抽中奖概率测试的方法,其特征在于,包括步骤:S1、根据用户请求,获取抽奖请求地址、请求参数、抽奖类型和线程数,并根据所述线程数创建抽奖子线程,所述抽奖子线程用于所述根据请求地址、所述请求参数和所述抽奖类型开启抽奖流程;S2、通过ReentrantLock,使每一个所述抽奖子线程在开始抽奖前的预设进度点进入休眠状态,并在最后一个所述抽奖子线程到达所述进度点后唤醒所有所述抽奖子线程以同时进行抽奖,得到所有抽奖结果信息;S3、对所有的所述抽奖结果信息进行统计。2.根据权利要求1所述的一种基于多线程的连抽中奖概率测试的方法,其特征在于,所述步骤S2具体为:在每个抽奖子线程到达开始抽奖前的预设进度点时,通过ReentrantLock获取锁,并在获取成功后锁定,所述抽奖子线程进入休眠并释放锁;在最后一个所述抽奖子线程到达的同时,唤醒所有休眠的所有所述抽奖子线程,使所有所述抽奖子线程在同一时间点进行抽奖,并得到抽奖结果信息。3.根据权利要求1所述的一种基于多线程的连抽中奖概率测试的方法,其特征在于,步骤S1中根据所述线程数创建抽奖子线程具体为:根据所述线程数创建抽奖子线程,并额外创建一个检查子线程;步骤S2和步骤S3之间还包括:S21、每个所述抽奖子线程统计各自的所述抽奖结果信息中的各个奖品的中奖数量以及返回异常或出错信息的次数;S22、由所述检查子线程根据抽奖类型和每个所述抽奖子线程所统计的各个奖品的中奖数量,统计重复的中奖记录。4.根据权利要求3所述的一种基于多线程的连抽中奖概率测试的方法,其特征在于,步骤S1中所述根据用户请求,获取抽奖请求地址、请求参数、抽奖类型和线程数具体为:根据用户请求,获取所述用户请求中的抽奖请求地址、请求参数、抽奖类型、循环次数和线程数;步骤S22和步骤S3之间还包括步骤:S23、根据所述循环次数,判断所述抽奖子线程是否已完成全部轮数抽奖,若是,则进入步骤S3,否则根据所述循环次数再次进入抽奖流程,并返回步骤S2。5.根据权利要求4所述的一种基于多线程的连抽中奖概率测试的方法,其特征在于,所述步骤S3具体为:收集所述抽奖子线程和所述检查子线程的数据,得到各个奖品的中奖个数、奖品总数、返回异常或出错信息的次数、重复的中奖记录信息,并计算出所有奖品的中奖概率。6.一种基于多线程的连抽中奖概率测试的终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器...

【专利技术属性】
技术研发人员:刘德建周文凯周小白陈丹林琛
申请(专利权)人:福建省天奕网络科技有限公司
类型:发明
国别省市:

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

1