CN115033222A - 线程管理方法、装置、电子设备、计算机可读存储介质 - Google Patents
线程管理方法、装置、电子设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN115033222A CN115033222A CN202210713319.3A CN202210713319A CN115033222A CN 115033222 A CN115033222 A CN 115033222A CN 202210713319 A CN202210713319 A CN 202210713319A CN 115033222 A CN115033222 A CN 115033222A
- Authority
- CN
- China
- Prior art keywords
- thread
- creating
- sub
- url
- threads
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 33
- 239000012634 fragment Substances 0.000 claims abstract description 17
- 238000012856 packing Methods 0.000 claims abstract description 3
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 29
- 238000012545 processing Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 239000002699 waste material Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000002035 prolonged effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于线程管理技术领域,提供了一种线程管理方法,包括以下步骤:创建主线程,并设置主线程数量自增N;将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建N个子线程;创建主线程和子线程之间的数据交换接口。本发明通过将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
Description
技术领域
本发明属于线程管理技术领域,尤其涉及一种线程管理方法、装置、电子设备、计算机可读存储介质。
背景技术
现代网页由HTML(Hyper Text Markup Language,超文本标记语言)、CSS(Cascading Style Sheets,层叠样式表)和JavaScript构成。HTML用来定义网页的内容,例如标题、正文、图像等,CSS用来控制网页的外观,例如颜色、字体、背景等,JavaScript用来在网页中添加一些动态效果与交互功能,为用户提供更流畅美观的浏览效果。
JavaScript是单线程语言,同一时间只能做一件事情。为了实现并发操作,HTML5提出了Web Worker标准,允许JavaScript创建多线程。
本发明申请人在实施上述技术方案中发现,上述技术方案至少存在以下缺陷:
Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件。
发明内容
本发明实施例的目的在于提供一种线程管理方法,旨在解决背景技术中所提到的问题。
本发明实施例是这样实现的,一种线程管理方法,包括以下步骤:
创建主线程,并设置主线程数量自增N,N为整数且大于等于1;
将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建N个子线程;
创建主线程和子线程之间的数据交换接口。
优选的,所述方法还包括以下步骤:
绑定N个子线程的参数信息和标志位信息,并监听N个子线程。
优选的,当所述标志位信息为假时,回调接收数据或者销毁URL和Web Worker对象;所述Web Worker对象由Web Worker类构造得到。
优选的,所述方法还包括以下步骤:
检测所述主线程是自发运行结束还是人为关闭;
当所述主线程是自发运行结束,进行数据反馈;当所述主线程是人为关闭,判断为异常结束。
优选的,超过预设体积的结构化数据存储在indexedDB中,Web Worker类能够直接访问indexedDB。
本发明实施例的另一目的在于提供一种线程管理装置,包括:
主线程创建模块,用于创建主线程,并设置主线程数量自增N,N为整数且大于等于1;
子线程创建模块,用于将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建N个子线程;
数据接口创建模块,用于创建主线程和子线程之间的数据交换接口。
优选的,所述装置还包括:
监听模块,用于绑定N个子线程的参数信息和标志位信息,并监听N个子线程。
本发明实施例的另一目的在于提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述中任一项所述的线程管理方法。
本发明实施例的另一目的在于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任一项所述的线程管理方法。
本发明实施例提供的一种线程管理方法,通过将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
附图说明
图1为实施例1提供的一种线程管理方法的流程图;
图2为实施例2提供的一种线程管理装置的结构框图;
图3为实施例3提供的一种线程管理方法的流程图;
图4为实施例4提供的一种线程管理装置的结构框图;
图5为线程生命周期的框图;
图6为实施例5提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述。
实施例1
如附图1和5所示,为本发明一个实施例提供的一种线程管理方法,包括以下步骤:
S101,创建主线程,并设置主线程数量自增1;
S102,将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL(Uniform Resource Locator,统一资源定位器),Web Worker类基于所述URL创建1个子线程;
S103,创建主线程和子线程之间的数据交换接口。
Blob(Binary Large Object)表示二进制类型的大对象。Blob 对象表示一个不可变、原始数据的类文件对象。
数据交换接口包括postMessage,onmessage。
在本实施例中,通过将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
需要注意的是,JavaScript代码片段通常是函数文件,因此,通常先将函数文件封装为自调用函数再打包为Blob对象。
在本实施例的一种情况中,所述方法还包括以下步骤:
绑定1个子线程的参数信息和标志位信息,并监听1个子线程。
在本实施例中,对子线程进行实时监听,从而时刻掌握Web Worker类的运行状况。
在本实施例的一种情况中,当所述标志位信息为假时,回调接收数据或者销毁URL和Web Worker对象;所述Web Worker对象由Web Worker类构造得到。
在本实施例中,当主线程、子线程和数据交换接口创建完成后,子线程即开始运行。子线程运行时接收到数据后会自动触发JavaScript代码片段(函数),然后在此处获取标志位信息,当标志位信息为假时,子线程会回调接收数据(通常由接收数据回调函数完成)以指向相关操作并继续进行,或者销毁URL和Web Worker对象。Web Worker对象由WebWorker类基于URL创建子线程时得到。
在本实施例的一种情况中,所述方法还包括以下步骤:
检测所述主线程是自发运行结束还是人为关闭;
当所述主线程是自发运行结束,进行数据反馈;当所述主线程是人为关闭,判断为异常结束。
在本实施例中,在上述步骤之后,再检测主线程是自发运行结束还是人为关闭。当主线程是自发运行结束,通过相应的函数(通常为resolve函数)进行数据计算并将计算结果进行反馈;当主线程是人为关闭,判断为异常结束(后续由调用异常结束回调函数实现)。
在本实施例的一种情况中,超过预设体积的结构化数据存储在indexedDB中,WebWorker类能够直接访问indexedDB。
现有技术还存在的问题是:在进行性能测试的过程中,发现Web Worker与主线程交互时,会将数据进行拷贝后再发送,从而导致时间延迟以及内存浪费。
在本实施例中,通过将预设体积的结构化数据存储在indexedDB中,Web Worker类能够直接访问indexedDB以获得操作数据,而不是靠主线程发送,从而不会出现时间延迟以及内存浪费的问题。
实施例2
结合附图2和5,在另一个实施例中,提供了一种线程管理装置,包括:
主线程创建模块101,用于创建主线程,并设置主线程数量自增1;
子线程创建模块102,用于将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建1个子线程;
数据接口创建模块103,用于创建主线程和子线程之间的数据交换接口。
Blob(Binary Large Object)表示二进制类型的大对象。Blob 对象表示一个不可变、原始数据的类文件对象。
数据交换接口包括postMessage,onmessage。
在本实施例中,采取子线程创建模块102将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决WebWorker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
需要注意的是,JavaScript代码片段通常是函数文件,因此,通常先将函数文件封装为自调用函数再打包为Blob对象。
在本实施例的一种情况中,所述装置还包括:
监听模块,用于绑定1个子线程的参数信息和标志位信息,并监听1个子线程。
在本实施例中,对子线程进行实时监听,从而时刻掌握Web Worker类的运行状况。
在本实施例的一种情况中,当所述标志位信息为假时,回调接收数据或者销毁URL和Web Worker对象;所述Web Worker对象由Web Worker类构造得到。
在本实施例中,当主线程、子线程和数据交换接口创建完成后,子线程即开始运行。子线程运行时接收到数据后会自动触发JavaScript代码片段(函数),然后在此处获取标志位信息,当标志位信息为假时,子线程会回调接收数据(通常由接收数据回调函数完成)以指向相关操作并继续进行,或者销毁URL和Web Worker对象。Web Worker对象由WebWorker类基于URL创建子线程时得到。
在本实施例的一种情况中,还包括以下内容:
检测所述主线程是自发运行结束还是人为关闭;
当所述主线程是自发运行结束,进行数据反馈;当所述主线程是人为关闭,判断为异常结束。
在本实施例中,在上述步骤之后,再检测主线程是自发运行结束还是人为关闭。当主线程是自发运行结束,通过相应的函数(通常为resolve函数)进行数据计算并将计算结果进行反馈;当主线程是人为关闭,判断为异常结束(后续由调用异常结束回调函数实现)。
在本实施例的一种情况中,超过预设体积的结构化数据存储在indexedDB中,WebWorker类能够直接访问indexedDB。
现有技术还存在的问题是:在进行性能测试的过程中,发现Web Worker与主线程交互时,会将数据进行拷贝后再发送,从而导致时间延迟以及内存浪费。
在本实施例中,通过将预设体积的结构化数据存储在indexedDB中,Web Worker类能够直接访问indexedDB以获得操作数据,而不是靠主线程发送,从而不会出现时间延迟以及内存浪费的问题。
实施例3
结合附图3和5,在另一个实施例中,提供了一种线程管理方法,包括以下步骤:
S201,创建主线程,并设置主线程数量自增N,N为整数且大于1;
S202,将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建N个子线程;
S203,创建主线程和子线程之间的数据交换接口。
实施例1通过涉及多线程处理模式,从而相比传统的单线程处理模式,提高了数据处理效率。本实施例在实施例1的基础上进一步改进,设计了分布式线程处理模式。
Blob(Binary Large Object)表示二进制类型的大对象。Blob 对象表示一个不可变、原始数据的类文件对象。
数据交换接口包括postMessage,onmessage。
在本实施例中,通过将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
需要注意的是,JavaScript代码片段通常是函数文件,因此,通常先将函数文件封装为自调用函数再打包为Blob对象。
在本实施例的一种情况中,所述方法还包括以下步骤:
绑定N个子线程的参数信息和标志位信息,并监听N个子线程,N为整数且大于1。
在本实施例中,通过监听多个子线程,从而时刻掌握每个子线程的运行情况。
在本实施例的一种情况中,当所述标志位信息为假时,回调接收数据或者销毁URL和Web Worker对象;所述Web Worker对象由Web Worker类构造得到。
在本实施例中,当主线程、子线程和数据交换接口创建完成后,子线程即开始运行。子线程运行时接收到数据后会自动触发JavaScript代码片段(函数),然后在此处获取标志位信息,当标志位信息为假时,子线程会回调接收数据(通常由接收数据回调函数完成)以指向相关操作并继续进行,或者销毁URL和Web Worker对象。Web Worker对象由WebWorker类基于URL创建子线程时得到。
在本实施例的一种情况中,所述方法还包括以下步骤:
检测所述主线程是自发运行结束还是人为关闭;
当所述主线程是自发运行结束,进行数据反馈;当所述主线程是人为关闭,判断为异常结束。
在本实施例中,在上述步骤之后,再检测主线程是自发运行结束还是人为关闭。当主线程是自发运行结束,通过相应的函数(通常为resolve函数)进行数据计算并将计算结果进行反馈;当主线程是人为关闭,判断为异常结束(后续由调用异常结束回调函数实现)。
在本实施例的一种情况中,超过预设体积的结构化数据存储在indexedDB中,WebWorker类能够直接访问indexedDB。
现有技术还存在的问题是:在进行性能测试的过程中,发现Web Worker与主线程交互时,会将数据进行拷贝后再发送,从而导致时间延迟以及内存浪费。
在本实施例中,通过将预设体积的结构化数据存储在indexedDB中,Web Worker类能够直接访问indexedDB以获得操作数据,而不是靠主线程发送,从而不会出现时间延迟以及内存浪费的问题。
在本实施例的一种情况中,在子线程开启后,在完成一次计算周期时是直接进行数据包上报,而是进行随机时延等待。
在多线程处理模式转为分布式线程处理模式时中存在以下问题:Web Worker不能在线程中实现数据库的存储以及进行图形学渲染,会统一将运算结果上报。由于数据包的分布是等大小的分布,在分派到线程之后,运算时延基本相同,此时主线程的数据包的接收会周期性密集与稀疏,而主线程是只能依次处理,短时间的上报高峰会使得CPU占用突然拉高,阻塞主线程渲染,造成界面卡顿。
因此,在本实施例中,在子线程开启后,在完成一次计算周期时是直接进行数据包上报,而是进行随机时延等待。通过该操作稍微拉长了整个任务的运行周期,同时也将线程的执行均匀分散,扰乱密集型周期,抑制主线程阻塞,从而在大型任务中显著地提升效率。
在本实施例的一种情况中,所述随机时延等待的时延因子与子线程数目成正比。
在分布式的计算任务中,每个线程运行时长不同,任务刚注册时单个任务的线程数量是最多的,此时的时延因子可以显著将任务分散开,但在运行过程中,线程数量在变小,此时的时延因子又会使得线程的计算周期变得很长,导致任务的运算后期的速率显著下降,效率显著降低。
在本实施例中,对时延因子进行了重新设计,不再是常数,而是与任务的子线程数目直接成正比,经过了这一步优化之后,分布式线程的质量、效率、稳定性和与系统的契合度都有了显著提升。
实施例4
结合附图4和5,在另一个实施例中,提供了一种线程管理装置,包括:
主线程创建模块201,用于创建主线程,并设置主线程数量自增N,N为整数且大于1;
子线程创建模块202,用于将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建1个子线程;
数据接口创建模块203,用于创建主线程和子线程之间的数据交换接口。
实施例2通过涉及多线程处理模式,从而相比传统的单线程处理模式,提高了数据处理效率。本实施例在实施例2的基础上进一步改进,设计了分布式线程处理模式。
Blob(Binary Large Object)表示二进制类型的大对象。Blob 对象表示一个不可变、原始数据的类文件对象。
数据交换接口包括postMessage,onmessage。
在本实施例中,采取子线程创建模块202将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决WebWorker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
需要注意的是,JavaScript代码片段通常是函数文件,因此,通常先将函数文件封装为自调用函数再打包为Blob对象。
在本实施例的一种情况中,所述装置还包括:
监听模块,用于绑定N个子线程的参数信息和标志位信息,并监听N个子线程,N为整数且大于1。
在本实施例中,通过监听多个子线程,从而时刻掌握每个子线程的运行情况。
在本实施例的一种情况中,当所述标志位信息为假时,回调接收数据或者销毁URL和Web Worker对象;所述Web Worker对象由Web Worker类构造得到。
在本实施例中,当主线程、子线程和数据交换接口创建完成后,子线程即开始运行。子线程运行时接收到数据后会自动触发JavaScript代码片段(函数),然后在此处获取标志位信息,当标志位信息为假时,子线程会回调接收数据(通常由接收数据回调函数完成)以指向相关操作并继续进行,或者销毁URL和Web Worker对象。Web Worker对象由WebWorker类基于URL创建子线程时得到。
在本实施例的一种情况中,还包括以下内容:
检测所述主线程是自发运行结束还是人为关闭;
当所述主线程是自发运行结束,进行数据反馈;当所述主线程是人为关闭,判断为异常结束。
在本实施例中,在上述步骤之后,再检测主线程是自发运行结束还是人为关闭。当主线程是自发运行结束,通过相应的函数(通常为resolve函数)进行数据计算并将计算结果进行反馈;当主线程是人为关闭,判断为异常结束(后续由调用异常结束回调函数实现)。
在本实施例的一种情况中,超过预设体积的结构化数据存储在indexedDB中,WebWorker类能够直接访问indexedDB。
现有技术还存在的问题是:在进行性能测试的过程中,发现Web Worker与主线程交互时,会将数据进行拷贝后再发送,从而导致时间延迟以及内存浪费。
在本实施例中,通过将预设体积的结构化数据存储在indexedDB中,Web Worker类能够直接访问indexedDB以获得操作数据,而不是靠主线程发送,从而不会出现时间延迟以及内存浪费的问题。
在本实施例的一种情况中,在子线程开启后,在完成一次计算周期时是直接进行数据包上报,而是进行随机时延等待。
在多线程处理模式转为分布式线程处理模式时中存在以下问题:Web Worker不能在线程中实现数据库的存储以及进行图形学渲染,会统一将运算结果上报。由于数据包的分布是等大小的分布,在分派到线程之后,运算时延基本相同,此时主线程的数据包的接收会周期性密集与稀疏,而主线程是只能依次处理,短时间的上报高峰会使得CPU占用突然拉高,阻塞主线程渲染,造成界面卡顿。
因此,在本实施例中,在子线程开启后,在完成一次计算周期时是直接进行数据包上报,而是进行随机时延等待。通过该操作稍微拉长了整个任务的运行周期,同时也将线程的执行均匀分散,扰乱密集型周期,抑制主线程阻塞,从而在大型任务中显著地提升效率。
在本实施例的一种情况中,所述随机时延等待的时延因子与子线程数目成正比。
在分布式的计算任务中,每个线程运行时长不同,任务刚注册时单个任务的线程数量是最多的,此时的时延因子可以显著将任务分散开,但在运行过程中,线程数量在变小,此时的时延因子又会使得线程的计算周期变得很长,导致任务的运算后期的速率显著下降,效率显著降低。
在本实施例中,对时延因子进行了重新设计,不再是常数,而是与任务的子线程数目直接成正比,经过了这一步优化之后,分布式线程的质量、效率、稳定性和与系统的契合度都有了显著提升。
实施例5
结合附图6,在另一个实施例中,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如实施例1或实施例3中任一项所述的线程管理方法。
在本实施例中,存储器与处理器之间通过通信接口实现数据传输。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器,用于执行计算机程序时实现实施例1或实施例3中任一项所述的线程管理方法。如果存储器、处理器和通信接口独立实现,则通信接口、存储器和处理器可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(IndustryStandard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器、处理器及通信接口,集成在一块芯片上实现,则存储器、处理器及通信接口可以通过内部接口完成相互间的通信。
处理器可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本实施例的一个或多个集成电路。
在本实施例中,通过将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
实施例6
在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1或实施例3中任一项所述的线程管理方法。
在本实施例中,计算机可读存储介质可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
在本实施例中,通过将JavaScript代码片段打包为Blob对象,再根据Blob对象创建相应域名的URL,Web Worker类基于URL创建子线程,从而解决Web Worker不能跨域加载JavaScript,需要开启服务器才能访问本地文件的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种线程管理方法,其特征在于,包括以下步骤:
创建主线程,并设置主线程数量自增N,N为整数且大于等于1;
将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,WebWorker类基于所述URL创建N个子线程;
创建主线程和子线程之间的数据交换接口。
2.根据权利要求1所述的线程管理方法,其特征在于,所述方法还包括以下步骤:
绑定N个子线程的参数信息和标志位信息,并监听N个子线程。
3.根据权利要求2所述的线程管理方法,其特征在于,当所述标志位信息为假时,回调接收数据或者销毁URL和Web Worker对象;所述Web Worker对象由Web Worker类构造得到。
4.根据权利要求3所述的线程管理方法,其特征在于,所述方法还包括以下步骤:
检测所述主线程是自发运行结束还是人为关闭;
当所述主线程是自发运行结束,进行数据反馈;当所述主线程是人为关闭,判断为异常结束。
5.根据权利要求1所述的线程管理方法,其特征在于,超过预设体积的结构化数据存储在indexedDB中,Web Worker类能够直接访问indexedDB。
6.一种线程管理装置,其特征在于,包括:
主线程创建模块,用于创建主线程,并设置主线程数量自增N,N为整数且大于等于1;
子线程创建模块,用于将JavaScript代码片段打包为Blob对象,根据所述Blob对象创建相应域名的URL,Web Worker类基于所述URL创建N个子线程;
数据接口创建模块,用于创建主线程和子线程之间的数据交换接口。
7.根据权利要求6所述的线程管理装置,其特征在于,所述装置还包括:
监听模块,用于绑定N个子线程的参数信息和标志位信息,并监听N个子线程。
8.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至5中任一项所述的线程管理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的线程管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210713319.3A CN115033222A (zh) | 2022-06-22 | 2022-06-22 | 线程管理方法、装置、电子设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210713319.3A CN115033222A (zh) | 2022-06-22 | 2022-06-22 | 线程管理方法、装置、电子设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033222A true CN115033222A (zh) | 2022-09-09 |
Family
ID=83126988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210713319.3A Pending CN115033222A (zh) | 2022-06-22 | 2022-06-22 | 线程管理方法、装置、电子设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033222A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223655A (zh) * | 2011-07-05 | 2011-10-19 | 上海市安全生产科学研究所 | 移动通信的底层多线程数据传输方法 |
US20180198807A1 (en) * | 2017-01-11 | 2018-07-12 | Sap Se | Client-side attack detection in web applications |
CN108399120A (zh) * | 2017-02-06 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 异步消息监控方法和装置 |
CN113419842A (zh) * | 2021-08-25 | 2021-09-21 | 北京翼辉信息技术有限公司 | 一种基于JavaScript构建边缘计算微服务的方法、装置 |
CN114595011A (zh) * | 2022-03-14 | 2022-06-07 | 杭州笨马网络技术有限公司 | 一种基于Web Worker的前端多进程计算方法和系统 |
-
2022
- 2022-06-22 CN CN202210713319.3A patent/CN115033222A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223655A (zh) * | 2011-07-05 | 2011-10-19 | 上海市安全生产科学研究所 | 移动通信的底层多线程数据传输方法 |
US20180198807A1 (en) * | 2017-01-11 | 2018-07-12 | Sap Se | Client-side attack detection in web applications |
CN108399120A (zh) * | 2017-02-06 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 异步消息监控方法和装置 |
CN113419842A (zh) * | 2021-08-25 | 2021-09-21 | 北京翼辉信息技术有限公司 | 一种基于JavaScript构建边缘计算微服务的方法、装置 |
CN114595011A (zh) * | 2022-03-14 | 2022-06-07 | 杭州笨马网络技术有限公司 | 一种基于Web Worker的前端多进程计算方法和系统 |
Non-Patent Citations (4)
Title |
---|
DYNAMIC: "Web Workers资源跨域问题", pages 1, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/47878150> * |
创客诚品,徐飞,李恒: "HTML5+CSS3从入门到精通 从前端开发、实战演练到网页设计布局一本就够", 30 November 2017, 北京希望电子出版社, pages: 144 * |
摩尔多0: "java多线程之使用标志位将线程停止", Retrieved from the Internet <URL:http://t.csdnimg.cn/Zg9k5> * |
王乐平: "PWA入门与实践", 30 April 2020, 机械工业出版社, pages: 145 - 46 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110197125A1 (en) | Web Page Loading Method and Apparatus | |
CN108334585A (zh) | 一种网页爬虫方法、装置以及电子设备 | |
CN112905399B (zh) | 数据处理方法、异常情况预测方法及相关产品 | |
US20240289144A1 (en) | Method, apparatus, system and storage medium for information processing | |
CN111338628B (zh) | 组件渲染方法及设备 | |
Huang | Research and application of Node. js Core Technology | |
CN112800311A (zh) | 一种浏览器页面数据采集方法、终端设备及存储介质 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
US9135461B1 (en) | Heterogeneous virtual machines sharing a security model | |
CN114443024A (zh) | 实现不限制嵌套层级的可视化ui拖拽布局的方法及系统 | |
CN114217878A (zh) | 一种对象加载方法及系统 | |
CN114006891A (zh) | 信息的上报方法、装置、设备及存储介质 | |
CN115033222A (zh) | 线程管理方法、装置、电子设备、计算机可读存储介质 | |
CN112866279A (zh) | 网页安全检测方法、装置、设备及介质 | |
CN113297502B (zh) | 一种富文本监听过滤方法及装置 | |
CN114003603A (zh) | 基于大数据平台的数据导出方法、系统及存储介质 | |
CN111291298A (zh) | 一种页面展示方法、装置、电子设备及存储介质 | |
CN109783134B (zh) | 前端页面配置方法、装置及电子设备 | |
CN113642836A (zh) | 回调事件的处理方法、装置、计算机设备及存储介质 | |
CN114115864A (zh) | 一种生成界面的方法、装置及电子设备 | |
CN114461954A (zh) | 动态插件运行方法、装置、系统及存储介质 | |
CN112287643A (zh) | 消息监听方法、装置、设备及计算机可读存储介质 | |
CN112035109A (zh) | 一种显示网页页面的方法及装置 | |
CN112612611A (zh) | 一种信息处理的方法、装置及系统 | |
CN114817166B (zh) | 一种取消文件操作的方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |