本发明涉及二维码生成技术领域,特别涉及一种基于多线程的二维码生成方法及系统。
背景技术:
近年来,随着智能手机技术的发展与普及,通过手机等移动智能终端设备,获得二维码承载相关信息与服务的应用已经深入普及用户,二维码已经逐渐从封闭系统应用向开放系统应用转变,二维码的生成效率日益成为人们关注的焦点。
传统生成二维码的方法是以串行的方式执行的,需要执行完毕一个函数后,才会执行另一个函数;系统不稳定,如果有一部分代码运行特别耗时,那么后面的语句必须等到耗时操作结束后才能继续运行,这时系统就有可能会失去响应,二维码的生成效率较低。
技术实现要素:
本发明提供一种基于多线程的二维码生成方法和系统,目的在于解决传统的二维码生成方法的二维码生成效率低,系统响应时间长,系统稳定性不高的问题。
为解决上述问题,本发明实施例提供一种基于多线程的二维码生成方法,包括以下步骤:
设定二维码参数;
主线程功能模块实例化生成子线程功能模块;
主线程功能模块获取二维码参数并发送至子线程功能模块;
子线程功能模块根据二维码参数计算二维码矩阵;
主线程功能模块接收子线程功能模块的二维码矩阵,根据所述二维码矩阵渲染生成二维码。
作为一种实施方式,所述二维码参数包括二维码内容、二维码纠错级别以及二维码的大小。
作为一种实施方式,所述二维码为矩阵式二维码的一种或多种。
作为一种实施方式,所述主线程功能模块获取二维码参数并发送至子线程功能模块,包括以下步骤:
主线程功能模块将二维码参数封装成参数对象,并将所述参数对象发送至子线程功能模块。
作为一种实施方式,所述子线程功能模块根据二维码参数计算二维码矩阵,包括以下步骤:
子线程功能模块获取主线程功能模块的参数对象,根据所述参数对象计算二维码矩阵。
作为一种实施方式,还包括以下步骤:
当子线程功能模块将二维码矩阵发送至主线程功能模块后,关闭子线程功能模块。
本发明实施例还提供一种基于多线程的二维码生成系统,包括二维码参数设定单元和算法单元,所述算法单元包括主线程功能模块、实例化模块以及子线程功能模块;
所述二维码参数设定单元,用于设定二维码参数;
所述主线程功能模块,耦接所述二维码参数设定单元和所述子线程功能模块,用于获取所述二维码参数设定单元的二维码参数,将获取的二维码参数发送至所述子线程功能模块,并接收所述子线程功能模块的二维码矩阵,根据所述二维码矩阵渲染生成二维码;
所述实例化模块,耦接所述主线程功能模块,用于根据所述主线程功能模块实例化生成子线程功能模块;
所述子线程功能模块,耦接所述主线程功能模块,用于获取所述主线程功能模块的获取的二维码参数,根据二维码参数计算二维码矩阵,将所述二维码矩阵发送至所述主线程功能模块。
作为一种实施方式,所述主线程功能模块包括获取子模块、发送子模块以及渲染子模块;
所述获取子模块,耦接所述二维码参数设定单元和子线程功能模块,用于获取所述二维码参数设定单元的二维码参数和接收所述子线程功能模块的二维码矩阵;
所述发送子模块,耦接所述封装子模块和所述子线程功能模块,用于将所述封装子模块的获取的二维码参数发送至所述子线程功能模块;
所述渲染子模块,耦接所述获取子模块,用于根据所述获取子模块接收到的二维码矩阵渲染二维码。
作为一种实施方式,所述述主线程功能模块还包括封装子模块;
所述封装子模块,耦接所述获取子模块,用于将所述二维码参数设定单元的二维码参数封装成参数对象。
作为一种实施方式,所述子线程功能模块包括接收解析子模块、计算子模块以及发送数据子模块;
所述接收解析子模块,耦接所述主线程功能模块,用于获取所述主线程功能模块的获取的二维码参数;
所述计算子模块,耦接所述接收解析子模块,用于根据所述二维码参数计算二维码矩阵;
所述发送数据子模块,耦接所述计算子模块和主线程功能模块,用于将所述计算子模块的二维码矩阵发送至所述主线程功能模块。
本发明相比于现有技术的有益效果在于:本发明使用了多线程机制,使二维码生成效率更高,在处理速度和响应速度上做到了大幅度的提升,系统更稳定,真正实现了多线程编程,提高了系统的资源利用率。
附图说明
图1为本发明的基于多线程的二维码生成方法的工作流程图;
图2为本发明的基于多线程的二维码生成系统的结构示意图。
附图标注:1、二维码参数设定单元;2、算法单元;21、主线程功能模块;211、获取子模块;212、封装子模块;213、发送子模块;214、渲染子模块;22、实例化模块;23、子线程功能模块;231、接收解析子模块;232、计算子模块;233、发送数据子模块;234、判断子模块。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。
如图1所示,本发明实施例提供一种基于多线程的二维码生成方法,包括以下步骤:
s100:设定二维码参数,二维码参数包括二维码内容、二维码纠错级别以及二维码的大小;
s200:主线程功能模块21获取二维码参数,并将二维码参数封装成参数对象;
s300:主线程功能模块21实例化生成子线程功能模块23;
s400:子线程功能模块23获取主线程功能模块21的参数对象,根据参数对象计算二维码矩阵;
s500:主线程功能模块21接收子线程功能模块23的二维码矩阵,根据二维码矩阵渲染生成二维码,二维码为矩阵式二维码的一种或多种。
还包括以下步骤:
s600:当子线程功能模块23将二维码矩阵发送至主线程功能模块21后,关闭子线程功能模块23。
如图2所示,一种基于多线程的二维码生成系统,包括二维码参数设定单元1和算法单元2。二维码参数设定单元1用于设定二维码参数,二维码参数包括二维码内容、二维码纠错级别以及二维码的大小等。算法单元2包括主线程功能模块21、实例化模块22以及子线程功能模块23,其中,实例化模块22耦接主线程功能模块21,用于根据主线程功能模块21实例化生成子线程功能模块23。
主线程功能模块21包括获取子模块211、发送子模块213以及渲染子模块214,获取子模块211耦接二维码参数设定单元1和子线程功能模块23,用于获取二维码参数设定单元1的二维码参数和接收子线程功能模块23的二维码矩阵;发送子模块213耦接封装子模块212和子线程功能模块23,用于将封装子模块212的获取的二维码参数发送至子线程功能模块23;渲染子模块214耦接获取子模块211,用于根据二维码矩阵和二维码参数渲染生成二维码。
子线程功能模块23包括接收解析子模块231、计算子模块232以及发送数据子模块233,接收解析子模块231耦接主线程功能模块21,用于获取主线程功能模块21的获取的二维码参数;计算子模块232耦接接收解析子模块231,用于根据二维码参数计算二维码矩阵;发送数据子模块233耦接计算子模块232和主线程功能模块21,用于将计算子模块232的二维码矩阵发送至主线程功能模块21。
除上述模块外,主线程功能模块21还包括封装子模块212,封装子模块212耦接获取子模块211,用于将二维码参数设定单元1的二维码参数封装成参数对象。若将二维码参数封装成参数对象后,接收解析子模块231获取主线程功能模块21的参数对象,计算子模块232根据参数对象计算二维码矩阵。参数对象可实现主线程功能模块21和子线程功能模块23之间的数据通信和传输。子线程功能模块23还包括判断子模块234,判断子模块234耦接发送数据子模块233,用于判断发送数据子模块233是否成功将二维码矩阵发送至主线程功能模块21,若发送成功,则关闭子线程功能模块23,释放内存,节省系统资源。
本发明相比于现有技术的有益效果在于:本发明使用了多线程机制,使二维码生成效率更高,在处理速度和响应速度上做到了大幅度的提升,系统更稳定,真正实现了多线程编程,提高了系统的资源利用率。
以上的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。