CN103841196B - 一种基于多线程的文件上传系统及方法 - Google Patents
一种基于多线程的文件上传系统及方法 Download PDFInfo
- Publication number
- CN103841196B CN103841196B CN201410082305.1A CN201410082305A CN103841196B CN 103841196 B CN103841196 B CN 103841196B CN 201410082305 A CN201410082305 A CN 201410082305A CN 103841196 B CN103841196 B CN 103841196B
- Authority
- CN
- China
- Prior art keywords
- file
- thread
- cpucount
- filecount
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于多线程的文件上传系统及方法,其中,所述方法包括:首先,获取客户机的配置参数,同时获取用户选择需要上传的文件个数filecount;然后,根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;最后,把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。其提高大批量小文件(例如word、txt、裕邦文件、excel等办公文件)的上传效率;并且,在上传过程中,通过对大批量的小文件进行分组(分组原则为每一组文件大小的差值最小最均衡)并通过多个线程上传,实现充分利用上传带宽的效果。
Description
技术领域
本发明涉及大批量小文件上传领域,特别涉及一种基于多线程的文件上传系统及方法。
背景技术
在现有技术中,大批量的文件上传会采用多线程技术提高效率,但是在分配线程数额时多采用一刀切模式,即忽视本地电脑硬件的配置情况而只分配固定的线程数。这就造成两个问题:1、硬件配置好的电脑分配的线程不够使得硬件机能没有得到充分应用从而影响上传效率;2、硬件配置低的电脑分配的线程过多造成电脑出现卡机同样影响了文件上传效率。
有鉴于此,现有技术有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于多线程的文件上传系统及方法,从而解决现有技术在大批量小文件上传过程中,不考虑硬件本身而直接采取多线程将可能出现卡机等情况,甚至影响系统性能的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种基于多线程的文件上传的方法,其中,所述方法包括以下步骤:
S1、获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
S2、获取用户选择需要上传的文件个数filecount;
S3、根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
S4、把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。
所述的基于多线程的文件上传的方法,其中,所述步骤S1中通过读取注册表获取本机CPU的名称和频率,通过Windows API GetSystemInfo获取CPU个数cpucount以及CPU型号。
所述的基于多线程的文件上传的方法,其中,所述步骤S3中按照预定规则确定所需建立的线程个数n具体包括:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount。
所述的基于多线程的文件上传的方法,其中,所述步骤S4中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
S41、先按文件大小做升序排列;
S42、把前面n个文件分别分配给n个线程;
S43、然后从文件序列的最后一个开始,把文件依次分配给当前线程文件中大小最小的一个线程。
所述的基于多线程的文件上传的方法,其中,所述步骤S43具体包括以下步骤:
S431、比较当前线程所含文件体积的大小,然后,将剩余的文件依次分配给当前线程所含文件体积中体积最小的一个线程;
S432、重复上述步骤直至将所有文件分配完成。
所述的基于多线程的文件上传的方法,其中,所述步骤S43具体包括以下步骤:
S431*、根据所含文件总体积大小对线程由小到大进行升序排序;
S432*、将剩余的文件依次分配给按序排列的线程;
S433*、剩余的文件数量小于线程数,则步骤完毕;剩余的文件数量大于线程数,则重复上述步骤直至将所有文件分配完成。
一种基于多线程的文件上传的系统,其中,所述系统包括:
第一获取单元,用于获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
第二获取单元,用于获取用户选择需要上传的文件个数filecount;
确定单元,用于根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
上传单元,用于把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。
所述的基于多线程的文件上传的系统,其中,所述第一获取单元中通过读取注册表获取本机CPU的名称和频率,通过Windows API GetSystemInfo获取CPU个数cpucount以及CPU型号。
所述的基于多线程的文件上传的系统,其中,所述上传单元中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
排列子单元,用于先按文件大小做升序排列;
第一分配子单元,用于把前面n个文件分别分配给n个线程;
第二分配子单元,用于然后从文件序列的最后一个开始,把文件依次分配给当前线程文件中大小最小的一个线程。
所述的基于多线程的文件上传的系统,其中,所述确定单元中按照预定规则确定所需建立的线程个数n具体包括:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount。
相较于现有技术,本发明提供的基于多线程的文件上传系统及方法具有以下优点:
(1)通过注册表和操作系统自带接口读取CPU核心来分配线程数额,提高大批量小文件(例如word、txt、裕邦文件、excel等办公文件)的上传效率;
(2)在上传过程中,通过对大批量的小文件进行分组(分组原则为每一组文件大小的差值最小最均衡)并通过多个线程上传,实现充分利用上传带宽的效果。
附图说明
图1为本发明的基于多线程的文件上传方法的流程图。
图2为本发明的基于多线程的文件上传系统的结构框图。
具体实施方式
本发明提供一种基于多线程的文件上传系统及方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,其为本发明的基于多线程的文件上传方法的流程图。如图所示,所述基于多线程的文件上传的方法包括以下步骤:
S1、获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
S2、获取用户选择需要上传的文件个数filecount;
S3、根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
S4、把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。
下面分别针对上述步骤进行详细描述。
所述步骤S1为获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount。具体来说,通过注册表和操作系统自带接口读取CPU核心来分配线程数额,提高大批量小文件(例如word、txt、裕邦文件、excel等办公文件)的上传效率。在本发明实施例中,通过读取注册表获取本机CPU的名称和频率,通过Windows API GetSystemInfo获取CPU个数cpucount以及CPU型号。这是本发明的关键所在:创造性的根据CPU实际参数来自动配置多线程上传的数目,即能够保证用户机的运行效率,又最大限度的利用系统资源完成快速上传。
所述步骤S2为获取用户选择需要上传的文件个数filecount。
所述步骤S3为根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n。即根据数cpucount、filecount两个数值,按照预先设定的规则来确定所需建立的线程个数n。与现有技术不同的是,在确定所需建立的线程个数n时,除了考虑到文件个数filecount之外,我们创造性地引入CPU核心个数这一参数,来确定所需建立的线程个数n。即n=f(cpucount,filecount)。
在本实施例中,我们根据下述公式来确定线程个数n:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount。
所述步骤S4为把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。相对应的,本发明在上传过程中,通过对大批量的小文件进行分组(分组原则为每一组文件大小的差值最小最均衡)并通过多个线程上传,实现充分利用上传带宽的效果。
进一步地,所述步骤S4中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
S41、先按文件大小做升序排列;
S42、把前面n个文件分别分配给n个线程;
S43、然后从文件序列的最后一个开始,把文件依次分配给当前线程所含文件体积中体积最小的一个线程。
举例来说,如一共有10份文件,四个线程:A线程、B线程、C线程、D线程。则首先将10个文件按照升序进行排列:文件1、文件2、文件3……文件10,其中,文件1体积最小,文件10体积最大。再将体积最小的文件1放入A线程,文件2放入B线程,文件3放入C线程,文件4放入D线程。此时,根据所含文件总体积大小对线程进行升序排序:A线程、B线程、C线程、D线程。其中,A线程所含文件1体积最小,D线程所含文件4体积最大。然后将剩下的文件排序最末的文件10放入A线程,文件9放入B线程,文件8放入C线程,文件7放入D线程。此时,再根据所含文件总体积大小对线程进行升序排序,并不断重复上述过程,直到所有文件都放入线程中为止。
需要注意的是,将文件依据该规则分别放入线程之前已经进行编组,所以之后进入线程是没有对比大小这个动作而是无停顿地进入线程内的。
同时,也可以在进入线程的同时对文件进行编组。
进一步地,所述的基于多线程的文件上传的方法中,所述步骤S43还可以包括以下步骤:
S431*、根据所含文件总体积大小对线程由小到大进行升序排序;即先计算线程中所含文件总体积大小,然后由小到大进行升序排序;
S432*、将剩余的文件依次分配给按序排列的线程;即将剩余文件中体积最小的放在所含文件总体积最小的线程中,再将次小的文件放入所含文件总体积次小的线程中,以此类推;
S433*、剩余的文件数量小于线程数,则步骤完毕;剩余的文件数量大于线程数,则重复上述步骤直至将所有文件分配完成。
本发明既提高了运行效率,又提高了资源使用效率来提高系统的效率,实现了大批量小文件上传效率与稳定兼具,克服了现有技术的不足。
本发明还提供了一种基于多线程的文件上传的系统,如图2所示,所述系统包括:
第一获取单元100,用于获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
第二获取单元200,用于获取用户选择需要上传的文件个数filecount;
确定单元300,用于根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
上传单元400,用于把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。
进一步地,所述的基于多线程的文件上传的系统中,所述第一获取单元中通过读取注册表获取本机CPU的名称和频率,通过Windows API GetSystemInfo获取CPU个数cpucount以及CPU型号。
进一步地,所述的基于多线程的文件上传的系统中,所述上传单元中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
排列子单元,用于先按文件大小做升序排列;
第一分配子单元,用于把前面n个文件分别分配给n个线程;
第二分配子单元,用于然后从文件序列的最后一个开始,把文件依次分配给当前线程所含文件体积中体积最小的一个线程。
进一步地,所述的基于多线程的文件上传的系统中,所述确定单元中按照预定规则确定所需建立的线程个数n具体包括:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount。
上述各个部分的功能都已经在上述方法中进行了详细介绍,这里就不再冗述了。
综上所述,本发明公开的基于多线程的文件上传系统及方法,其中,所述方法包括:首先,获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:同时,获取用户选择需要上传的文件个数filecount;然后,根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;最后,把准备上传的文件按文件大小均衡的原则分配给n个线程,n个线程同时工作,直至完成上传。其通过注册表和操作系统自带接口读取CPU核心来分配线程数额,提高大批量小文件(例如word、txt、裕邦文件、excel等办公文件)的上传效率;并且,在上传过程中,通过对大批量的小文件进行分组(分组原则为每一组文件大小的差值最小最均衡)并通过多个线程上传,实现充分利用上传带宽的效果。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (4)
1.一种基于多线程的文件上传的方法,其特征在于,所述方法包括以下步骤:
S1、获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
S2、获取用户选择需要上传的文件个数filecount;
S3、根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
S4、把准备上传的文件按文件大小均衡的原则分配给n个线程,即将文件中体积最大的放在所含文件总体积最小的线程中,再将次大的文件放入所含文件总体积次小的线程中,以此类推,n个线程同时工作,直至完成上传;
所述步骤S1中通过读取注册表获取本机CPU的名称和频率,通过Windows APIGetSystemInfo获取CPU个数cpucount以及CPU型号;
所述步骤S3中按照预定规则确定所需建立的线程个数n具体包括:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount;
所述步骤S4中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
S41、先按文件大小做升序排列;
S42、把前面n个文件分别分配给n个线程;
S43、然后从文件序列的最后一个开始,把剩余的文件依次分配给当前线程所含文件体积中体积最小的一个线程;
所述文件大小均衡原则还具体包括:
将文件依据所述原则分别放入线程之前或者同时进行升序排序编组,之后进入线程不需要再对比大小而是无停顿进入线程内。
2.根据权利要求1所述的基于多线程的文件上传的方法,其特征在于,所述步骤S43具体包括以下步骤:
S431、比较当前线程所含文件体积的大小,然后,将剩余的文件依次分配给当前线程所含文件体积中体积最小的一个线程;
S432、重复上述步骤直至将所有文件分配完成。
3.根据权利要求1所述的基于多线程的文件上传的方法,其特征在于,所述步骤S43具体包括以下步骤:
S431*、根据所含文件总体积大小对线程由小到大进行升序排序;
S432*、将剩余的文件依次分配给按序排列的线程;
S433*、剩余的文件数量小于线程数,则步骤完毕;剩余的文件数量大于线程数,则重复上述步骤直至将所有文件分配完成。
4.一种基于多线程的文件上传的系统,其特征在于,所述系统包括:
第一获取单元,用于获取客户机的配置参数,其中,所述配置参数包括CPU个数cpucount:
第二获取单元,用于获取用户选择需要上传的文件个数filecount;
确定单元,用于根据CPU个数cpucount和文件个数filecount,按照预定规则确定所需建立的线程个数n;
上传单元,用于把准备上传的文件按文件大小均衡的原则分配给n个线程,即将文件中体积最大的放在所含文件总体积最小的线程中,再将次大的文件放入所含文件总体积次小的线程中,以此类推,n个线程同时工作,直至完成上传;
所述第一获取单元中通过读取注册表获取本机CPU的名称和频率,通过Windows APIGetSystemInfo获取CPU个数cpucount以及CPU型号;
所述确定单元中按照预定规则确定所需建立的线程个数n具体包括:
若filecount≥( 2*cpucount + 2 ),则n = 2*cpucount + 2;
若filecount < ( 2*cpucount + 2 ),则n = filecount;
所述上传单元中把准备上传的文件按文件大小均衡的原则分配给n个线程具体包括:
排列子单元,用于先按文件大小做升序排列;
第一分配子单元,用于把前面n个文件分别分配给n个线程;
第二分配子单元,用于然后从文件序列的最后一个开始,把剩余的文件依次分配给当前线程所含文件体积中体积最小的一个线程;
所述文件大小均衡原则还具体包括:
将文件依据所述原则分别放入线程之前或者同时进行升序排序编组,之后进入线程不需要再对比大小而是无停顿进入线程内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410082305.1A CN103841196B (zh) | 2014-03-07 | 2014-03-07 | 一种基于多线程的文件上传系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410082305.1A CN103841196B (zh) | 2014-03-07 | 2014-03-07 | 一种基于多线程的文件上传系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103841196A CN103841196A (zh) | 2014-06-04 |
CN103841196B true CN103841196B (zh) | 2017-05-17 |
Family
ID=50804319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410082305.1A Active CN103841196B (zh) | 2014-03-07 | 2014-03-07 | 一种基于多线程的文件上传系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841196B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580457A (zh) * | 2014-12-31 | 2015-04-29 | 广州华多网络科技有限公司 | 有序图片集多线程并发上传的方法及系统 |
CN105049483B (zh) * | 2015-06-03 | 2019-05-14 | 中国银行股份有限公司 | 一种基于浏览器的数据上传方法和装置 |
CN105162595B (zh) * | 2015-08-03 | 2019-07-09 | 四川效率源信息安全技术股份有限公司 | 安全传输非压缩文件的加密以及解密方法 |
CN106484537B (zh) | 2016-09-30 | 2019-07-19 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
CN107463541A (zh) * | 2017-07-31 | 2017-12-12 | 武汉斗鱼网络科技有限公司 | 文件差异比较方法、存储介质、电子设备及系统 |
CN109842652A (zh) * | 2017-11-27 | 2019-06-04 | 中兴通讯股份有限公司 | 一种文件的上传方法、终端、云服务器和计算机存储介质 |
CN108429799B (zh) * | 2018-03-01 | 2021-11-16 | 北京天融信网络安全技术有限公司 | 批量文件的并行传输方法、装置及存储介质 |
CN108520016A (zh) * | 2018-03-21 | 2018-09-11 | 四川斐讯信息技术有限公司 | 基于时钟定时器和多台上传服务器的数据入库方法及系统 |
CN108965373B (zh) * | 2018-05-04 | 2021-04-30 | 天津猎鹰网络技术有限公司 | 多媒体文件上传方法和装置 |
CN108737571B (zh) * | 2018-06-25 | 2021-07-06 | 郑州云海信息技术有限公司 | 一种解决大数据量文件转发导致网闸卡死的方法及系统 |
CN109324897A (zh) * | 2018-08-24 | 2019-02-12 | 平安科技(深圳)有限公司 | 数据上传方法及系统、终端和计算机可读存储介质 |
CN109246221A (zh) * | 2018-09-21 | 2019-01-18 | 上海勋立信息科技有限公司 | 一种多文件的数据分段高速上传方法、客户端及服务器 |
CN110333911A (zh) * | 2019-07-04 | 2019-10-15 | 北京迈格威科技有限公司 | 一种文件包读取方法及装置 |
CN110688344A (zh) * | 2019-09-24 | 2020-01-14 | 捷开通讯(深圳)有限公司 | 一种文件扫描方法、装置、计算机可读存储介质及终端 |
CN111680091B (zh) * | 2020-06-03 | 2023-04-28 | 中国银行股份有限公司 | 多线程文件注册方法及装置 |
CN113177826A (zh) * | 2021-05-20 | 2021-07-27 | 青岛海信智慧生活科技股份有限公司 | 一种批量配置商品与小区的方法及装置 |
CN116414782B (zh) * | 2023-06-12 | 2023-10-20 | 荣耀终端有限公司 | 识别重复文件的方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980168A (zh) * | 2010-11-05 | 2011-02-23 | 北京云快线软件服务有限公司 | 一种动态分块传输方法及装置 |
CN102455899A (zh) * | 2010-10-29 | 2012-05-16 | 镇江雅迅软件有限责任公司 | 一种多文件并发上传的方法 |
CN103049533A (zh) * | 2012-12-23 | 2013-04-17 | 北京人大金仓信息技术股份有限公司 | 一种快速向数据库加载数据的方法 |
CN103442037A (zh) * | 2013-08-09 | 2013-12-11 | 华南理工大学 | 一种基于ftp协议实现超大文件多线程断点上传的方法 |
CN103559443A (zh) * | 2013-11-01 | 2014-02-05 | 北京奇虎科技有限公司 | 多核设备的病毒扫描方法和装置 |
-
2014
- 2014-03-07 CN CN201410082305.1A patent/CN103841196B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455899A (zh) * | 2010-10-29 | 2012-05-16 | 镇江雅迅软件有限责任公司 | 一种多文件并发上传的方法 |
CN101980168A (zh) * | 2010-11-05 | 2011-02-23 | 北京云快线软件服务有限公司 | 一种动态分块传输方法及装置 |
CN103049533A (zh) * | 2012-12-23 | 2013-04-17 | 北京人大金仓信息技术股份有限公司 | 一种快速向数据库加载数据的方法 |
CN103442037A (zh) * | 2013-08-09 | 2013-12-11 | 华南理工大学 | 一种基于ftp协议实现超大文件多线程断点上传的方法 |
CN103559443A (zh) * | 2013-11-01 | 2014-02-05 | 北京奇虎科技有限公司 | 多核设备的病毒扫描方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103841196A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103841196B (zh) | 一种基于多线程的文件上传系统及方法 | |
CN103703467B (zh) | 存储数据的方法和装置 | |
CN103782641B (zh) | 一种控制信道传输方法及装置 | |
CN107515878B (zh) | 一种数据索引的管理方法及装置 | |
CN105786808B (zh) | 一种用于分布式执行关系型计算指令的方法与设备 | |
CN105183561B (zh) | 一种资源分配方法和系统 | |
CN104408159B (zh) | 一种数据关联、加载、查询方法及装置 | |
CN106294462B (zh) | 一种获取推荐视频的方法和系统 | |
CN104063501B (zh) | 基于hdfs的副本平衡方法 | |
CN104536997A (zh) | 用于客户端界面的数据批量处理方法及装置 | |
CN102904824A (zh) | 服务提供实体选择方法及装置 | |
CN105488134A (zh) | 大数据处理方法及大数据处理装置 | |
CN107408126A (zh) | 用于集群中的基于联接的查询处理的工作负载感知的数据放置 | |
CN110083600A (zh) | 一种日志收集处理的方法、装置、计算设备及存储介质 | |
CN103399844B (zh) | 报表的生成方法和生成装置 | |
CN103686668B (zh) | 数据更新方法、系统和设备 | |
CN103338246A (zh) | 一种基础设施云资源分配过程中的虚拟机选择方法及系统 | |
CN104573088A (zh) | 一种单据编号生成方法和装置 | |
CN105512268B (zh) | 一种数据查询方法及装置 | |
CN104537016B (zh) | 一种确定文件所在分区的方法及装置 | |
CN110555034A (zh) | 一种数据查询分页方法、装置、服务器及介质 | |
CN105930521B (zh) | 一种数据库管理装置和方法 | |
CN105049475A (zh) | 大规模社区的数据高效存储优化方法及系统 | |
CN110019054A (zh) | 日志去重方法和系统、内容分发网络系统 | |
CN103514042A (zh) | 一种双调归并排序调优方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |