CN112257135A - 一种基于多线程的模型加载方法、装置、存储介质及终端 - Google Patents
一种基于多线程的模型加载方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN112257135A CN112257135A CN202011196535.2A CN202011196535A CN112257135A CN 112257135 A CN112257135 A CN 112257135A CN 202011196535 A CN202011196535 A CN 202011196535A CN 112257135 A CN112257135 A CN 112257135A
- Authority
- CN
- China
- Prior art keywords
- model
- thread
- sub
- structured data
- file
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Evolutionary Computation (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种基于多线程的模型加载方法、装置、存储介质及终端。基于该模型加载方法,当接收模型加载指令时,响应模型加载指令通过主线程创建至少一子线程;通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;通过所述主线程在当前页面对所述结构化数据模型进行渲染。本方案可以在主线程的基础上创建子线程来执行模型的下载任务,主线程可以同时响应用户操作执行页面相关任务,在模型下载完成后再交由主线程进行页面渲染,使得页面不会因下载模型而长时间处于加载状态,保证了页面运行速度。
Description
技术领域
本申请涉及建筑信息化技术领域,尤其涉及一种基于多线程的模型加载方法、装置、存储介质及终端。
背景技术
BIM(Building Information Modeling,建筑信息模型)是建筑学、工程学及土木工程的制图工具,其核心是通过建立虚拟的建筑工程三维模型,利用数字化技术,为模型提供完整的、与实际情况一致的建筑工程信息库。该信息库不仅包含描述建筑物构件的几何信息、专业属性及状态信息,还包含了非构件对象(如空间、运动行为)的状态信息。借助这个包含建筑工程信息的三维模型,大大提高了建筑工程的信息集成化程度,从而为建筑工程项目的相关利益方提供了一个工程信息交换和共享的平台。
目前的BIM模型库为轻量化模型库,在将需要的BIM模型转换为终端使用的数据时,通常是向网络端获取所需BIM模型的三角化的几何数据传递到终端,终端再如实按照三角化的几何数据进行基于多线程的模型加载显示。然而,在制图过程中由于BIM模型的体量是不固定的,在BIM模型数据量较大时,对应的三角化的几何数据量也会较大,使得需要传递的数据量较大,造成数据加载时间过长,进而影响BIM模型页面的正常运行。
发明内容
本申请实施例提供一种基于多线程的模型加载方法、装置、存储介质及终端,可以提升页面运行速度。
本申请提供一种基于多线程的模型加载方法,其包括:
接收模型加载指令;
响应所述模型加载指令,通过主线程创建至少一子线程;
通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
通过所述主线程在当前页面对所述结构化数据模型进行渲染。
相应的,本申请实施例提供一种基于多线程的模型加载装置,其包括:
接收单元,用于接收模型加载指令;
创建单元,用于响应所述模型加载指令,通过主线程创建至少一子线程;
下载单元,用于通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
处理单元,用于通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
渲染单元,用于通过所述主线程在当前页面对所述结构化数据模型进行渲染。
在一实施方式中,所述模型加载指令至少包括:待加载模型的数据量参数。在响应所述模型加载指令,通过主线程创建至少一子线程时,所述创建单元用于:
根据所述数据量参数确定待创建子线程的目标数量;
通过所述主线程调用构造函数创建所述目标数量的子线程。
在一实施方式中,所述下载单元用于:
当创建有多个子线程时,通过多个子线程并行从网络端下载所述模型加载指令指示的文件,直至所述文件下载完毕。
在一实施方式中,在通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型时,所述处理单元用于:
通过所述至少一子线程对下载的文件进行解压缩处理;
将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型。
在一实施方式中,在将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型时,所述处理单元具体用于:
对解压缩处理后文件中的数据进行解析;
根据解析结果将数据存储到存储区域的对应位置,得到结构化数据模型。
在一实施方式中,在通过所述主线程在当前页面对所述结构化数据模型进行渲染时,所述渲染单元用于:
当所述主线程监听到所述至少一子线程生成结构化数据模型后,从相应存储区域中读取所述结构化模型对应的目标数据;
基于目标数据进行模型绘制,并在当前页面对所绘制的模型进行渲染。
在一实施方式中,所述装置还包括:
关闭单元,用于在基于解析结果生成结构化数据模型之后,通过所述主线程在当前页面对所述结构化数据模型进行渲染之前,关闭所述至少一子线程。
相应的,一种计算机可读存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述基于多线程的模型加载方法。
相应的,本申请实施例提供一种终端,其包括处理器和存储器,存储器存储有多条指令,指令适于处理器进行加载,以执行上述基于多线程的模型加载方法。
本申请提实施例中,当接收模型加载指令时,响应模型加载指令通过主线程创建至少一子线程;通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;通过所述主线程在当前页面对所述结构化数据模型进行渲染。本方案可以在主线程的基础上创建子线程来执行模型的下载任务,主线程可以同时响应用户操作执行页面相关任务,在模型下载完成后再交由主线程进行页面渲染,使得页面不会因下载模型而长时间处于加载状态,保证了页面运行速度。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1是本申请实施例提供的基于多线程的模型加载系统的场景示意图。
图2为本申请实施例提供的基于多线程的模型加载方法的一流程示意图。
图3为本申请实施例提供的基于多线程的模型加载方法的另一流程示意图。
图4为本申请实施例提供的处理设备内的基于多线程的模型加载装置的结构示意图。
图5为本申请实施例提供的终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种基于多线程的模型加载方法、装置、存储介质及终端。以下将分别进行详细说明。
请参阅图1,图1为本申请实施例所提供的基于多线程的模型加载系统的场景示意图,该系统可以包括建立了通信连接的终端和服务器。其中:
终端可以是具备显示功能的设备。例如,终端包括但不局限于平板电脑、笔记本电脑、个人计算机(PC,Personal Computer)等具备显示屏的设备。在本申请中,终端用于接收用户的操作指令、响应用户操作指令执行相应操作;
服务器可以为单独的网络服务器或服务器集群,用于数据的接收、存储和发送。
终端和服务器可通过无线网络或有线网络进行通信连接,以数据交互。其中:
终端可以接收用户的操作,基于用户操作触发接收模型加载指令,然后响应模型加载指令,通过正在运行的主线程创建至少一子线程,并通过线程从服务器下载模型加载指令指示的文件。服务器根据终端的文件下载请求,查找与该加载指令对应的文件,并发送给终端,实现对应文件的下载。终端在通过子线程完成文件下载之后,通过子线程对下载的文件进行解析,生成结构化数据模型。最后,终端通过主线程在当前页面对结构化数据模型进行渲染。
本方案通过在主线程的基础上创建子线程来执行模型的下载任务,主线程可以同时响应用户操作执行页面相关任务,在模型下载完成后再交由主线程进行页面渲染,使得页面不会因下载模型而长时间处于加载状态,保证了页面运行速度。
需要说明的是,图1所示的系统场景示意图仅仅是一个示例,本申请实施例描述的终端、服务器以及场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
请参阅图2,图2是本申请实施例提供的基于多线程的模型加载方法的第一种流程示意图,该方法应用于处理设备侧,该方法包括:
101、接收模型加载指令。
在本申请实施例中,模型指BIM建筑信息模型,具体为通过数字信息仿真模拟建筑物所具有的真实信息,并以建筑工程项目的各项相关信息数据作为基础建立的多维模型,它可以帮助实现建筑信息的集成,从建筑的设计、施工、运行直至建筑全寿命周期的终结,各种信息始终整合于一个三维模型信息数据库中,设计团队、施工单位、设施运营部门和业主等各方人员可以基于BIM进行协同工作,有效提高工作效率、节省资源、降低成本、以实现可持续发展。当然,模型不以此为限,还可以是其他种类的模型。
具体的,本申请应用场景可以为在建筑制图工具中进行在线建模时的应用场景,用户可通过建筑制图工具的绘制界面绘制模型。其中,该建筑制图工具可以为web应用程序。当需要使用相关BIM模型时,可以通过该网页而应用程序所呈现的绘制界面中的模型展示区域触发模型加载指令。例如,模型展示区域展示有BIM模型的缩略图,用户可以通过点击需要的BIM模型的缩略图,触发终端接收模型加载指令。
102、响应模型加载指令,通过主线程创建至少一子线程。
在本申请实施例中,主线程可以为在进行在线建模时web应用程序的UI线程。JavaScript语言采用的是单线程模型,一旦碰到一些计算密集型或者高延迟的任务时,会影响整个页面的运行。由于BIM模型的体量是不固定的,若BIM模型数据量过大,对终端设备的处理能力和网络流量都是一个巨大的考验。因此,本申请实施例中,可在原有单线程执行的基础上创建额外的子线程,以在独立的子线程中执行费时的模型下载任务,从而使主线程不会因下载模型时间过长而造成页面阻塞或停止运行。
在本申请实施例中,通过主线程创建子线程的方式可以有多种。例如,可以使用构造函数worker()创建worker线程,作为上述子线程。例如,主线程采用new命令,调用worker()构造函数,新建一个worker线程,代码如下:
var worker=new worker('work.js');
而具体需要创建多少子线程,可以依据待处理任务指示需处理的数据量来确定。也即,模型加载指令至少包括:待加载模型的数据量参数。则,步骤“响应模型加载指令,通过主线程创建至少一子线程”,可以包括以下流程:
1021、根据数据量参数确定待创建子线程的目标数量;
1022、通过主线程调用构造函数创建目标数量的子线程。
实际应用中,可以结合终端设备本身的性能,预先设定数据量参数与子线程数量之间的对应关系。数据量参数越大,待创建子线程的数量越多;反之,数据量参数越小,待创建子线程的数量越少。在根据数据量参数确定待创建子线程的目标数量时,直接根据该对应关系确定目标数量即可。
在一实施方式中,为了更加合理利用终端资源,在根据数据量参数确定待创建子线程的目标数量时,还可以结合当前终端的实际运行参数(如当前运行的应用程序、终端设备的电量)和应用程序的运行优先级等,动态确定待创建子线程的数量。
具体实施时,在创建子线程时需要指定worker的名称,用来区分多个worker线程。
103、通过至少一子线程从网络端下载模型加载指令指示的文件。
具体的,在创建好子线程后,该子线程可独立于主线程在后台运行一个脚本操作,执行模型下载操作。其中,该子线程可以长时间运行而不被用户操在前台的操作所中断,并同时保证了web应用程序中网页页面对用户操作的响应。
当创建有多个子线程时,可以通过多个子线程并行从网络端下载模型加载指令指示的文件,直至文件下载完毕,以提升文件下载速度。
其中,网络端即服务器,服务器中有以二进制形式存储的BIM模型数据。具体的,网络端在接收到终端的文件下载请求后,将对该文件下载请求进行解析,查找与该加载指令对应的二进制文件并返回给终端,以实现对应文件的下载。
需要说明的是,worker()构造函数的参数是一个脚本文件,该文件就是worker线程所要执行的任务。由于worker不能读取本地文件,所以这个脚本必须来自网络。如果下载没有成功,worker就会默默地失败。
104、通过至少一子线程对下载的文件进行解析,生成结构化数据模型。
具体的,在文件下载完成后,可通过创建的子线程对其进行解压缩,,解析成数据格式,并存储到数据库的相应位置以生成结构化数据模型。也即,在一实施例中,“通过至少一子线程对下载的文件进行解析,生成结构化数据模型”的步骤,可以包括以下流程:
1041、通过至少一子线程对下载的文件进行解压缩处理;
1042、将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型。
其中,读成结构化的数据即读成对象。需要说明的是,子线程和主线程不在同一个上下文环境,因此不能直接通信,必须通过消息完成。例如,主线程和子线程之间可以通过postMessage和onmessage来进行数据发送和接收。
例如,主线程调用worker.postMessage()方法,向worker发消息,具体可参考如下代码:
worker.postMessage('Hello world');
worker.postMessage({method:'echo',args:['work']});
其中,worker.postMessage()方法的参数,就是主线程传给worker的数据。它可以是各种数据类型,包括二进制数据。
接着,主线程通过worker.onmessage指定监听函数,接收子线程发回来的消息。具体可参考如下代码:
worker.onmessage=function(event){
console.log('Received message'+event.data);
doSomething();}
function doSomething(){
//执行任务worker.postMessage('work done!');}
其中,事件对象的data属性可以获取worker发来的数据。
在一些实施例中,在将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型时,具体可以对解压缩处理后文件中的数据进行解析,然后,根据解析结果将数据存储到存储区域的对应位置,得到结构化数据模型。
具体实施时,在基于解析结果生成结构化数据模型之后,通过主线程在当前页面对所述结构化数据模型进行渲染之前,还可以关闭所创建的子线程,以节省终端资源。
105、通过主线程在当前页面对结构化数据模型进行渲染。
具体的,当主线程监听到子线程生成结构化数据模型后,将从相应存储区域中读取结构化模型对应的目标数据,然后基于目标数据进行模型绘制,并在当前页面对所绘制的模型进行渲染。
在此之前,各个子线程都是独立执行的,子线程执行完之后再返回主线程上,在这个过程中不影响主线程的执行,不会产生性能负担。
由上可知,本申请实施例提供的基于多线程的模型加载方法,当接收模型加载指令时,响应模型加载指令通过主线程创建至少一子线程;通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;通过所述主线程在当前页面对所述结构化数据模型进行渲染。本方案可以在主线程的基础上创建子线程来执行模型的下载任务,主线程可以同时响应用户操作执行页面相关任务,在模型下载完成后再交由主线程进行页面渲染,使得页面不会因下载模型而长时间处于加载状态,保证了页面运行速度。
下面将以web端加载BIM模型的应用场景为例,对本申请中的基于多线程的模型加载方法进行详细描述。其具体流程如下:
(1)创建worker线程,下载大型的二进制文件。
(2)将下载的大型二进制文件进行解压缩。
(3)解析二进制文件,生成结构化模型对象。
(4)返回主线程并且渲染到web端网页上面。
具体的,首先需要创建一个worker线程,在浏览器单线程执行的基础上开启一个子线程进行程序处理,从而避免影响主线程其他任务的执行。然后,在创建的子线程中进行大型的二进制文件的下载、解压缩二进制文件,解析成数据格式并生成结构化数据模型。
需要说明的是,主线程与worker线程之间无法直接通信,两者之间需要通过postMessage和onmessage来进行数据发送和接收。
在生成结构化数据之后,需要关闭worker线程,以节省系统资源。随后,将结果返回主线程去绘制,并构造成three.js对象,然后渲染到web端网页上。在此之前,各个子线程都是独立执行的,子线程执行完之后再返回主线程上,在这个过程中不影响主线程的执行,不会产生性能负担。
本方案解决了BIM模型过大、计算密集度高所造成的UI界面渲染被阻塞的问题。通过web worker创建多个线程并行执行模型下载操作,UI主线程就会变得轻松,页面将不会被拖慢甚至阻塞。另外,在UI主线程中生成多个worker线程,主线程运行的同时worker线程也在运行,相互不干扰,通过增加线程的并行数提升系统性能。
在本申请又一实施例中,还提供一种基于多线程的模型加载装置,该模型加载装置可以软件或硬件的形式集成在终端中,该终端具体可以包括手机、平板电脑、笔记本电脑等设备。如图4所示,该模型加载装置300可以包括:检测单元301和处理单元302,其中:
接收单元301,用于接收模型加载指令;
创建单元302,用于响应所述模型加载指令,通过主线程创建至少一子线程;
下载单元303,用于通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
处理单元304,用于通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
渲染单元305,用于通过所述主线程在当前页面对所述结构化数据模型进行渲染。
在一实施方式中,模型加载指令至少包括:待加载模型的数据量参数。在响应所述模型加载指令,通过主线程创建至少一子线程时,创建单元302具体可以用于:
根据所述数据量参数确定待创建子线程的目标数量;
通过所述主线程调用构造函数创建所述目标数量的子线程。
在一实施方式中,下载单元303具体可以用于:
当创建有多个子线程时,通过多个子线程并行从网络端下载所述模型加载指令指示的文件,直至所述文件下载完毕。
在一实施方式中,在通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型时,处理单元304具体可以用于:
通过所述至少一子线程对下载的文件进行解压缩处理;
将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型。
在一实施方式中,在将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型时,处理单元304进一步可以用于:
对解压缩处理后文件中的数据进行解析;
根据解析结果将数据存储到存储区域的对应位置,得到结构化数据模型。
在一实施方式中,在通过所述主线程在当前页面对所述结构化数据模型进行渲染时,所述渲染单元305可以用于:
当所述主线程监听到所述至少一子线程生成结构化数据模型后,从相应存储区域中读取所述结构化模型对应的目标数据;
基于目标数据进行模型绘制,并在当前页面对所绘制的模型进行渲染。
在一实施方式中,模型加载装置300还可以包括:
关闭单元,用于在基于解析结果生成结构化数据模型之后,通过所述主线程在当前页面对所述结构化数据模型进行渲染之前,关闭所述至少一子线程。
由上可知,本申请实施例提供的基于多线程的模型加载装置,通过接收单元301接收模型加载指令时,创建单元302响应模型加载指令通过主线程创建至少一子线程;下载单元303通过至少一子线程从网络端下载所述模型加载指令指示的文件;处理单元304通过至少一子线程对下载的文件进行解析,生成结构化数据模型;渲染单元305通过主线程在当前页面对结构化数据模型进行渲染。本方案可以在主线程的基础上创建子线程来执行模型的下载任务,主线程可以同时响应用户操作执行页面相关任务,在模型下载完成后再交由主线程进行页面渲染,使得页面不会因下载模型而长时间处于加载状态,保证了页面运行速度。
在本申请又一实施例中还提供一种终端,该终端可以是智能手机、平板电脑等终端设备。如图5所示,终端400可以包括:射频(RF,Radio Frequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(wiFi,wireless Fidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,LowNoise Amplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元604可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图5中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和或或背光。
音频电路606、扬声器,传声器可提供用户与终端之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如终端,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与终端的通信。
wiFi属于短距离无线传输技术,终端通过wiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了wiFi模块607,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和或或模块,以及调用存储在存储器602内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
终端还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
具体在本实施例中,终端中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:
接收模型加载指令;
响应所述模型加载指令,通过主线程创建至少一子线程;
通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
通过所述主线程在当前页面对所述结构化数据模型进行渲染。
本申请方案在主线程的基础上创建子线程来执行模型的下载任务,主线程可以同时响应用户操作执行页面相关任务,在模型下载完成后再交由主线程进行页面渲染,使得页面不会因下载模型而长时间处于加载状态,保证了页面运行速度。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种基于多线程的模型加载方法中的步骤。例如,该指令可以执行如下步骤:
接收模型加载指令;
响应所述模型加载指令,通过主线程创建至少一子线程;
通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
通过所述主线程在当前页面对所述结构化数据模型进行渲染。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种基于多线程的模型加载方法中的步骤,因此,可以实现本申请实施例所提供的任一种基于多线程的模型加载方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的基于多线程的模型加载方法、装置、存储介质及终端进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于多线程的模型加载方法,其特征在于,包括:
接收模型加载指令;
响应所述模型加载指令,通过主线程创建至少一子线程;
通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
通过所述主线程在当前页面对所述结构化数据模型进行渲染。
2.根据权利要求1所述的基于多线程的模型加载方法,其特征在于,所述模型加载指令至少包括:待加载模型的数据量参数;
所述响应所述模型加载指令,通过主线程创建至少一子线程,包括:
根据所述数据量参数确定待创建子线程的目标数量;
通过所述主线程调用构造函数创建所述目标数量的子线程。
3.根据权利要求2所述的基于多线程的模型加载方法,其特征在于,还包括:
当创建有多个子线程时,通过多个子线程并行从网络端下载所述模型加载指令指示的文件,直至所述文件下载完毕。
4.根据权利要求1所述的基于多线程的模型加载方法,其特征在于,所述通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型,包括:
通过所述至少一子线程对下载的文件进行解压缩处理;
将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型。
5.根据权利要求4所述的基于多线程的模型加载方法,其特征在于,所述将解压缩处理后文件中的数据读成结构化的数据,得到结构化数据模型,包括:
对解压缩处理后文件中的数据进行解析;
根据解析结果将数据存储到存储区域的对应位置,得到结构化数据模型。
6.根据权利要求5所述的基于多线程的模型加载方法,其特征在于,所述通过所述主线程在当前页面对所述结构化数据模型进行渲染,包括:
当所述主线程监听到所述至少一子线程生成结构化数据模型后,从相应存储区域中读取所述结构化模型对应的目标数据;
基于目标数据进行模型绘制,并在当前页面对所绘制的模型进行渲染。
7.根据权利要求1-6任一项所述的基于多线程的模型加载方法,其特征在于,在基于解析结果生成结构化数据模型之后,通过所述主线程在当前页面对所述结构化数据模型进行渲染之前,还包括:
关闭所述至少一子线程。
8.一种基于多线程的模型加载装置,其特征在于,包括:
接收单元,用于接收模型加载指令;
创建单元,用于响应所述模型加载指令,通过主线程创建至少一子线程;
下载单元,用于通过所述至少一子线程从网络端下载所述模型加载指令指示的文件;
处理单元,用于通过所述至少一子线程对下载的文件进行解析,生成结构化数据模型;
渲染单元,用于通过所述主线程在当前页面对所述结构化数据模型进行渲染。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行权利要求1-7任一项所述的基于多线程的模型加载方法。
10.一种终端,其特征在于,包括处理器和存储器,所述存储器存储有多条指令,所述指令适于所述处理器进行加载,以执行如权利要求1-7任一项所述的基于多线程的模型加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011196535.2A CN112257135B (zh) | 2020-10-30 | 2020-10-30 | 一种基于多线程的模型加载方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011196535.2A CN112257135B (zh) | 2020-10-30 | 2020-10-30 | 一种基于多线程的模型加载方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112257135A true CN112257135A (zh) | 2021-01-22 |
CN112257135B CN112257135B (zh) | 2023-09-05 |
Family
ID=74267309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011196535.2A Active CN112257135B (zh) | 2020-10-30 | 2020-10-30 | 一种基于多线程的模型加载方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112257135B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948040A (zh) * | 2021-02-26 | 2021-06-11 | 青岛海信医疗设备股份有限公司 | 一种影像显示方法和装置及设备 |
CN113064739A (zh) * | 2021-03-31 | 2021-07-02 | 北京达佳互联信息技术有限公司 | 线程间通信方法、装置、电子设备及存储介质 |
CN113326115A (zh) * | 2021-06-21 | 2021-08-31 | 上海华客信息科技有限公司 | 多图表页面的渲染方法、系统、电子设备和存储介质 |
CN113806054A (zh) * | 2021-09-27 | 2021-12-17 | 北京市商汤科技开发有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113838182A (zh) * | 2021-11-24 | 2021-12-24 | 之江实验室 | 基于多线程的磁共振3d图像大数据量渲染方法及系统 |
CN114116234A (zh) * | 2022-01-24 | 2022-03-01 | 山东捷瑞数字科技股份有限公司 | 一种基于浏览器的三维场景模型解压缩加载方法 |
CN114245173A (zh) * | 2021-12-17 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种图像压缩方法、装置、终端设备和存储介质 |
CN115828007A (zh) * | 2022-11-21 | 2023-03-21 | 上海秉匠信息科技有限公司 | 一种页面展示的方法、装置、系统、电子设备及介质 |
CN117130688A (zh) * | 2023-09-06 | 2023-11-28 | 南京荣耀软件技术有限公司 | 快应用卡片加载方法、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832100A (zh) * | 2017-10-27 | 2018-03-23 | 平安普惠企业管理有限公司 | 一种apk插件的加载方法及其终端 |
CN108074274A (zh) * | 2017-12-26 | 2018-05-25 | 深圳拎得清软件有限公司 | 基于浏览器的bim模型实时渲染方法及装置 |
CN109783442A (zh) * | 2018-12-25 | 2019-05-21 | 武汉思路富邦工程咨询有限公司 | 一种基于Redis和Mongodb的IFC模型存储方式 |
CN110058897A (zh) * | 2019-03-15 | 2019-07-26 | 平安普惠企业管理有限公司 | 页面操作控制方法、装置、计算机设备及存储介质 |
CN110378063A (zh) * | 2019-07-26 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 基于智慧建筑空间的设备部署方法、装置、以及电子设备 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN110990731A (zh) * | 2019-10-12 | 2020-04-10 | 平安国际智慧城市科技股份有限公司 | 一种静态网页的渲染方法、装置、设备及计算机存储介质 |
CN111080766A (zh) * | 2019-12-30 | 2020-04-28 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
-
2020
- 2020-10-30 CN CN202011196535.2A patent/CN112257135B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832100A (zh) * | 2017-10-27 | 2018-03-23 | 平安普惠企业管理有限公司 | 一种apk插件的加载方法及其终端 |
CN108074274A (zh) * | 2017-12-26 | 2018-05-25 | 深圳拎得清软件有限公司 | 基于浏览器的bim模型实时渲染方法及装置 |
CN109783442A (zh) * | 2018-12-25 | 2019-05-21 | 武汉思路富邦工程咨询有限公司 | 一种基于Redis和Mongodb的IFC模型存储方式 |
CN110058897A (zh) * | 2019-03-15 | 2019-07-26 | 平安普惠企业管理有限公司 | 页面操作控制方法、装置、计算机设备及存储介质 |
CN110378063A (zh) * | 2019-07-26 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 基于智慧建筑空间的设备部署方法、装置、以及电子设备 |
CN110443893A (zh) * | 2019-08-02 | 2019-11-12 | 广联达科技股份有限公司 | 大规模建筑场景渲染加速方法、系统、装置和存储介质 |
CN110990731A (zh) * | 2019-10-12 | 2020-04-10 | 平安国际智慧城市科技股份有限公司 | 一种静态网页的渲染方法、装置、设备及计算机存储介质 |
CN111080766A (zh) * | 2019-12-30 | 2020-04-28 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948040A (zh) * | 2021-02-26 | 2021-06-11 | 青岛海信医疗设备股份有限公司 | 一种影像显示方法和装置及设备 |
CN113064739A (zh) * | 2021-03-31 | 2021-07-02 | 北京达佳互联信息技术有限公司 | 线程间通信方法、装置、电子设备及存储介质 |
CN113326115A (zh) * | 2021-06-21 | 2021-08-31 | 上海华客信息科技有限公司 | 多图表页面的渲染方法、系统、电子设备和存储介质 |
CN113806054A (zh) * | 2021-09-27 | 2021-12-17 | 北京市商汤科技开发有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113838182A (zh) * | 2021-11-24 | 2021-12-24 | 之江实验室 | 基于多线程的磁共振3d图像大数据量渲染方法及系统 |
CN114245173A (zh) * | 2021-12-17 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种图像压缩方法、装置、终端设备和存储介质 |
CN114245173B (zh) * | 2021-12-17 | 2023-04-25 | 中国平安财产保险股份有限公司 | 一种图像压缩方法、装置、终端设备和存储介质 |
CN114116234A (zh) * | 2022-01-24 | 2022-03-01 | 山东捷瑞数字科技股份有限公司 | 一种基于浏览器的三维场景模型解压缩加载方法 |
CN115828007A (zh) * | 2022-11-21 | 2023-03-21 | 上海秉匠信息科技有限公司 | 一种页面展示的方法、装置、系统、电子设备及介质 |
CN115828007B (zh) * | 2022-11-21 | 2023-08-04 | 上海秉匠信息科技有限公司 | 一种页面展示的方法、装置、系统、电子设备及介质 |
CN117130688A (zh) * | 2023-09-06 | 2023-11-28 | 南京荣耀软件技术有限公司 | 快应用卡片加载方法、电子设备及存储介质 |
CN117130688B (zh) * | 2023-09-06 | 2024-05-24 | 南京荣耀软件技术有限公司 | 快应用卡片加载方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112257135B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112257135B (zh) | 一种基于多线程的模型加载方法、装置、存储介质及终端 | |
US11025963B2 (en) | Data processing method, apparatus, and system for live streaming page | |
CN108512695B (zh) | 监控应用卡顿的方法及装置 | |
CN106970790B (zh) | 一种应用程序创建的方法、相关设备及系统 | |
CN109408136B (zh) | 信息处理方法、装置、存储介质及电子设备 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
WO2018077041A1 (zh) | 应用运行的方法及装置 | |
CN111416756B (zh) | 协议测试方法、装置、计算机设备及存储介质 | |
CN111400000A (zh) | 网络请求处理方法、装置、设备和存储介质 | |
CN112347545A (zh) | 一种建筑模型处理方法、装置、计算机设备及存储介质 | |
CN110471701B (zh) | 图像渲染的方法、装置、存储介质及电子设备 | |
CN113742014A (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
CN114327087A (zh) | 输入事件处理方法、装置、电子设备和存储介质 | |
CN111273955A (zh) | 热修复插件优化方法、装置、存储介质及电子设备 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN112000566A (zh) | 测试用例的生成方法及装置 | |
CN111104281B (zh) | 一种游戏性能监控方法、装置、系统及存储介质 | |
CN111359210B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN112316437A (zh) | 一种资源切换方法、装置、电子设备及存储介质 | |
CN113742716B (zh) | 代码运行方法、装置、电子设备、存储介质和程序产品 | |
CN115469937A (zh) | 插件运行方法、装置、电子设备及存储介质 | |
CN114510417A (zh) | 一种图像渲染效果测试方法、装置、电子设备和存储介质 | |
CN113384893A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN114417201A (zh) | 消息处理方法、装置、计算机设备及存储介质 | |
CN110309454B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |