一种基于多线程的二维码生成方法及系统技术方案

技术编号:14182938 阅读:154 留言:0更新日期:2016-12-14 12:23
本发明专利技术提供了一种基于多线程的二维码生成方法,包括以下步骤:(1)设定二维码参数;(2)主线程获取二维码参数;(3)主线程把参数封装成参数对象;(4)主线程实例化一个子线程;(5)主线程向子线程发送参数对象;(6)子线程接收参数对象;(7)子线程计算二维码矩阵;(8)子线程把二维码矩阵发回主线程;(9)主线程接收二维码矩阵并渲染二维码;(10)关闭子线程。还提供了一种基于多线程的二维码生成系统,包括二维码参数设定模块和算法模块。本发明专利技术在传统的二维码生成技术中使用了多线程机制,二维码生成效率更高,在处理速度和响应速度上做到了大幅度的提升,系统更稳定,真正实现了多线程编程,提高了系统的资源利用率。

Method and system for generating two-dimensional code based on multi thread

The invention provides a generation method based on two-dimensional multi-threaded code, which comprises the following steps: (1) the set of two-dimensional code parameters; (2) to obtain two-dimensional code parameters of the main thread; (3) the main thread parameters are encapsulated into object parameters; (4) the main thread to instantiate a sub thread; (5) the main thread to the sub thread parameter object; (6) sub thread receives a parameter object; (7) sub thread calculation of two-dimensional code matrix; (8) sub thread to the two-dimensional code matrix from the main thread; (9) the main thread receives a two-dimensional code and two-dimensional code matrix rendering; (10) to close Zi Xiancheng. The invention also provides a two-dimensional code generation system based on multithreading, which comprises a two-dimensional code parameter setting module and an algorithm module. The present invention generates a multi threading mechanism using the technology in the traditional two-dimensional code, two-dimensional code generation efficiency is higher in processing speed and speed of response be greatly improved, the system is more stable, the real implementation of the multi-threaded programming, improve the system resource utilization.

【技术实现步骤摘要】

本专利技术涉及二维码的生成方法,具体涉及一种基于多线程的二维码生成方法及系统
技术介绍
条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。一维条形码根据一组水平方向黑条的不同宽度,将黑条和空白编成由“0”和“1”组成的一系列字符,该二进制字符按照一定的规则进行编码。二维条形码在水平方向和垂直方向的二维空间存储信息,根据编码原理,二维条形码分为行排式二维条形码和矩阵式二维条形码。二维条形码具有信息容量大、可靠性高和保密性强等优点。近年来,随着智能手机技术的发展与普及,通过手机等移动智能终端设备,获得二维码承载相关信息与服务的应用已经深入普及用户,二维码已经逐渐从封闭系统应用向开放系统应用转变,二维码的生成效率日益成为人们关注的焦点。由于实现二维码的技术很多,各自互不兼容,从二维码的编码原理而言,通常可分为以下两种类型:行排式二维条码和矩阵式二维码。行排式二维条码具有代表性的矩阵式二维条码有Code16K、Code49、PDF417等。矩阵式二维码具有代表性的矩阵式二维条码有:CodeOne、MaxiCode、QRCode、DataMatrix等。但是,传统的二维码生成方法有如下缺点:生成效率低。传统情况下,生成二维码的方法是以串行的方式执行的,需要执行完毕一个函数后,才会执行另一个函数;系统不稳定,如果有一部分代码运行特别耗时,那么后面的语句必须等到耗时操作结束后才能继续运行,这时系统就有可能会失去响应。二维码的编码模块是任何二维码生成方法的关键组成部分,二维码的生成是非常复杂的计算过程,涉及复杂的数据编码和纠错编码等。任何环节出错都不会成功生成二维码,而且每一个环节都必须在前一个环节正确完成的基础上进行。因此,提高和改进现有的二维码生成方法的效率很有必要。
技术实现思路
本专利技术提供了一种基于多线程的二维码生成方法及系统,目的在于解决传统的二维码生成方法中二维码生成效率低,系统响应时间长,系统稳定性不高的问题。为达到上述目的,本专利技术通过以下技术方案实现:一种基于多线程的二维码生成方法,包括以下步骤:(1)设定二维码参数;(2)主线程获取二维码参数;(3)主线程把参数封装成参数对象;(4)主线程实例化一个子线程;(5)主线程向子线程发送参数对象;(6)子线程接收参数对象;(7)子线程计算二维码矩阵;(8)子线程把二维码矩阵发回主线程;(9)主线程接收二维码矩阵并渲染二维码;(10)关闭子线程。所述二维码为矩阵式二维条码的一种或多种。步骤(1)中,所述二维码参数至少包括二维码内容、二维码纠错级别和二维码的大小。所述参数对象由主线程获取到的二维码参数封装而成,方便主线程和子线程之间的数据传输。所述子线程由主线程通过实例化一个子线程所创建,子线程会立即监听并接收主线程发送来的参数对象数据,和主线程协同工作,用于提高二维码生成方法的效率和提高系统资源的利用率。步骤(7)中,按照矩阵式二维码的标准计算二维码矩阵,主线程把繁琐的二维码矩阵过程放在子线程中计算,用于减轻主线程的服务压力,可以提高系统的响应效率。本专利技术还提供了一种基于多线程的二维码生成系统,包括二维码参数设定模块和算法模块。所述二维码参数设定模块用于设定二维码的相关参数,所述参数至少包括二维码内容、二维码纠错级别和二维码的大小。所述算法模块包括主线程功能模块和子线程功能模块。所述主线程功能模块用于完成主线程功能,包括:获取二维码参数、封装成参数对象、实例化子线程、向子线程发送数据、监听接收子线程数据和渲染二维码。所述子线程功能模块用于完成子线程功能,包括:接收并解析主线程参数对象、计算二维码矩阵、向主线程发送数据。本专利技术与现有技术相比,具有如下优点:本专利技术在传统的二维码生成技术中使用了多线程机制,二维码生成效率更高,在处理速度和响应速度上做到了大幅度的提升,系统更稳定,真正实现了多线程编程,提高了系统的资源利用率。附图说明:图1是本专利技术基于多线程的二维码生成系统的结构示意图;图2是本专利技术基于多线程的二维码生成方法及系统的工作流程图;图3是本专利技术基于多线程的二维码生成系统中主线程的工作流程图;图4是本专利技术基于多线程的二维码生成系统中子线程的工作流程图。具体实施方式:本专利技术提供一种基于多线程的二维码生成方法及系统,具体工作流程如图2所示,该方法目的在于解决传统二维码生成方法的生成效率低,系统响应时间长,系统稳定性不高的问题。在本专利技术的一个实施例中,以生成一个具体二维码为例,利用本专利技术的二维码生成方法来实现该二维码的生成,包括如下步骤:(1)设定二维码参数,设定的二维码参数包括二维码内容、二维码纠错级别和二维码的大小,此处二维码内容设定为“abc”,纠错级别设定为“L”,大小设定为400px*400px;(2)主线程获取设定的二维码参数,包括上述的二维码内容、二维码纠错级别及二维码的大小;(3)主线程把三个二维码参数封装成参数对象(此处封装为“object”),参数对象包含设定的三个二维码参数,封装成对象后,可以方便实现主线程和子线程之间的数据传输;(4)主线程实例化一个子线程,此处命名为“worker”,该子线程“worker”立即用子线程监听接收函数(此处假设为“wkOnMsg()”)监听主线程可能发过来的数据,该子线程可以和主线程协同工作,用于提高二维码生成方法的效率和提高系统资源的利用率;(5)主线程把参数对象“object”作为主线程发送函数(此处假设为postMsg()”)的参数向子线程“worker”发送;(6)子线程“worker”用子线程监听接收函数“wkOnMsg()”接收参数对象“object”;(7)子线程“worker”解析参数对象“object”的属性,得到设定的二维码参数,即:二维码内容为“abc”,纠错级别为“L”,大小为400px*400px,根据解析的二维码参数和二维码标准(此处为国家标准GB/T 18284-2000《快速响应矩阵码》),计算出二维码矩阵“data”,主线程把复杂繁琐的二维码矩阵“data”的计算过程放在子线程“worker”中计算,用于减轻主线程的服务压力,也可以提高系统的响应效率;(8)子线程“worker”用子线程发送函数(此处假设为“wkPostMsg()”)把二维码矩阵“data”发回主线程;(9)主线程用主线程监听接收函数(此处假设为“onMsg()”),监听接收二维码矩阵“data”,并根据设定的二维码大小400*400px,用渲染函数(此处假设为“fill()”)生成相应大小的二维码;(10)生成二维码后,子线程“worker”自动关闭,用于节省系统资源。本专利技术还提供了一种基于多线程的二维码生成系统,包括二维码参数设定模块和算法模块。基于多线程的二维码生成系统的结构示意图如图1所示。所述二维码参数设定模块用于设定二维码的相关参数,所述参数至少包括二维码内容、二维码纠错级别和二维码的大小。所述算法模块包括主线程功能模块和子线程功能模块。所述主线程功能模块用于完成主线程功能,包括:获取二维码参数、封装成参数对象、实例化子线程、向子线程发送数据、监听接收子线程数据和渲染二维码。本专利技术基于多线程的二维码生成系统中主线程的工作流程图如图3所示,具体步本文档来自技高网
...
一种基于多线程的二维码生成方法及系统

【技术保护点】
一种基于多线程的二维码生成方法,其特征在于,包括以下步骤:(1)设定二维码参数;(2)主线程获取二维码参数;(3)主线程把参数封装成参数对象;(4)主线程实例化一个子线程;(5)主线程向子线程发送参数对象;(6)子线程接收参数对象;(7)子线程计算二维码矩阵;(8)子线程把二维码矩阵发回主线程;(9)主线程接收二维码矩阵并渲染二维码;(10)关闭子线程。

【技术特征摘要】
1.一种基于多线程的二维码生成方法,其特征在于,包括以下步骤:(1)设定二维码参数;(2)主线程获取二维码参数;(3)主线程把参数封装成参数对象;(4)主线程实例化一个子线程;(5)主线程向子线程发送参数对象;(6)子线程接收参数对象;(7)子线程计算二维码矩阵;(8)子线程把二维码矩阵发回主线程;(9)主线程接收二维码矩阵并渲染二维码;(10)关闭子线程。2.如权利要求1所述的基于多线程的二维码生成方法,其特征在于,步骤(1)中,所述二维码参数至少包括二维码内容、二维码纠错级别和二维码的大小。3.如权利要求1所述的基于多线程的二维码生成方法,其特征在于,所述二维码为矩阵式二维条码的一种或多种。4.如权利要求1所述的基于多线程的二维码生成方法,其特征在于,步骤(7)中,按照矩阵式二维码的标准计算二维码矩阵。5.一...

【专利技术属性】
技术研发人员:杨晓东孙文
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江;33

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

1