CN110515672B - 业务数据加载方法、装置以及电子设备 - Google Patents
业务数据加载方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN110515672B CN110515672B CN201810489670.2A CN201810489670A CN110515672B CN 110515672 B CN110515672 B CN 110515672B CN 201810489670 A CN201810489670 A CN 201810489670A CN 110515672 B CN110515672 B CN 110515672B
- Authority
- CN
- China
- Prior art keywords
- data
- service
- thread
- loading
- sub
- 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
Images
Classifications
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种业务数据加载方法、装置以及电子设备,其中,方法包括:在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程。本发明实施例的方案,能够在应用启动过程中,当需要加载大量的业务数据时仍可以实现快速完成各业务的初始化,保证启动页面展示过程流畅,不会出现卡顿。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务数据加载方法、装置以及电子设备。
背景技术
现有的终端应用在每次启动时会先初始化各个业务模块,加载各个业务模块初始化完成所需的所有数据库里的数据。以即时通信应用为例,每次启动App时都需要加载好友数据,当好友数量较多,如一万左右时,每一次启动需要读取的数据库里面保存的好友数据的记录需要花费很长时间,达到几分钟的级别。这个好友数据加载会阻塞后续其他依赖业务的初始化数据加载,影响了其他正常业务,导致用户会在App启动界面上看到界面展示过程特别慢,甚至可以在界面上看到一段很长时间的空白界面。
发明内容
本发明提供了一种业务数据加载方法、装置以及电子设备,能够在应用启动过程中,当需要加载大量的业务数据时仍可以实现快速完成各业务的初始化,保证启动页面展示过程流畅,不会出现卡顿。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种业务数据加载方法,包括:
在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;
如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程。
第二方面,提供了另一种业务数据加载方法,包括:
统计即时通信应用中的好友热度;
在执行所述即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据。
第三方面,提供了一种业务数据加载装置,包括:
线程启动模块,用于在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;
第一数据加载模块,用于如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程。
第四方面,提供了另一种业务数据加载装置,包括:
热度统计模块,用于统计即时通信应用中的好友热度;
数据加载模块,用于在执行所述即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据。
第五方面,提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;
如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程。
第六方面,提供了另一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
统计即时通信应用中的好友热度;
在执行所述即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据。
本发明提供了一种业务数据加载方法、装置以及电子设备,在执行应用初始化加载流程的主线程中,针对那些需要加载大量业务数据的业务初始化加载流程,可以先在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,然后继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程返回到主线程中,从而在主线程中继续执行其他业务的初始化加载流程。本方案可以避免因某个业务初始化加载流程中需要加载大量的业务数据,导致该业务初始化时长过长,从而导致其他依赖业务无法加载,或者使得整个应用初始化时长过长,保证应用的启动页面展示过程流畅,不会出现卡顿。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为现有技术中的业务数据加载逻辑示意图;
图2为本发明实施例的业务数据加载逻辑示意图;
图3为本发明实施例的业务数据加载系统结构图;
图4为本发明实施例的业务数据加载方法流程图一;
图5为本发明实施例的业务数据加载方法流程图二;
图6a为本发明实施例的业务数据筛选方法流程图一;
图6b为本发明实施例的业务数据筛选方法流程图二;
图7为本发明实施例的业务数据加载方法流程图三;
图8为本发明实施例的业务数据加载方法流程图四;
图9为本发明实施例的业务数据加载装置结构图一;
图10为本发明实施例的业务数据加载装置结构图二;
图11为本发明实施例的业务数据加载装置结构图三;
图12为本发明实施例的数据统计模块的结构示意图;
图13为本发明实施例的业务数据加载装置结构图四;
图14为本发明实施例的电子设备的结构示意图;
图15为本发明实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为现有技术中的业务数据加载逻辑示意图。如图中所示,在传统的应用初始化加载流程中,主要通过在一个业务加载主线程中执行该应用初始化所包含的各业务的初始化加载流程。每个业务的初始化流程分别在该业务对应的加载线程中执行完成。各业务加载线程之间可能存在依赖业务关系(一个业务加载线程的执行依赖于另一业务加载线程的执行结果)。当所有业务加载线程执行完成并返回后,业务加载主线程执行完成,应用跳转进入到主界面,向用户提供各业务的操作服务。在业务加载线程中包含对业务数据的加载过程。每个业务加载线程需要从业务数据库中读取本业务所需加载的业务数据完成业务加载过程,每个业务加载线程中所需加载的业务数据量各不相同,当一个业务加载线程中待加载的业务数据量较大时,会影响该业务初始化加载的速度,同时也会影响到基于该业务初始化加载结果的其他依赖业务的初始化加载进度,进而响应整个业务加载主线程的执行进度,造成应用启动过程不流畅,甚至出现空白界面或卡顿的现象。
为了解决现有技术中,因业务数据量较大造成的业务初始化加载时间过长,致使应用启动速度慢的缺陷,本发明提供了一种业务数据的加载方案。如图2所示为本发明实施例的业务数据加载逻辑示意图,其核心思想是,在业务加载线程中,如果某个业务的初始化加载流程,例如图2中业务1的舰载线程中待加载的业务数据量较大,则可先在该业务加载线程中加载指定业务数据量对应的部分业务数据,当该部分业务数据加载完成后,继续执行该业务加载流程的剩余加载内容,直至加载完成后关闭该加载线程,返回到业务加载主线程。基于该业务初始化加载结果的其他依赖业务可以根据该业务加载完成的结果继续执行初始化加载流程。
针对业务1加载线程中未完成初始化加载的剩余业务数据,可以通过在业务加载主线程中另开启一个新的线程,用于加载该部分剩余的业务数据,并且该线程的执行过程不会影响到其他业务的初始化加载流程。
如此,由于在业务1加载线程中加载的业务数量减少了,可以快速完成业务1的初始化加载流程,从而保证了整个业务加载主线程的快速进行,使应用初始加载过程顺利和快速进行,保证启动过程流畅。
基于图2所示的业务数据加载逻辑示意图,图3为本发明实施例提供的业务数据加载系统结构图。如图3所示,该系统包括:业务数据库310和业务数据加载装置320,其中:
业务数据库310,用于存储应用在每次启动过程中各业务在初始化加载过程中所需要加载的业务数据。例如在即时通信应用中的好友数据等。
业务数据加载装置320,用于在执行应用初始化加载流程的主线程中,控制各子线程执行业务的初始化加载流程。该业务数据加载装置320可包括:
线程启动模块,用于在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个子线程中对应执行应用包含的各业务对应的初始化加载流程;
第一数据加载模块,用于如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程。
具体地,在应用启动过程中,应用中的各业务模块都需要执行初始化加载流程,待初始化加载完成后,才能向外提供业务服务。在执行各业务对应的初始化加载流程中,有些业务对应的待加载的业务数据量会比较大,加载时间较长。
为了不影响业务的初始化加载时间,可以在指定业务(该指定业务包含的待加载的业务数据总量超过预定数据量)对应的子线程中,先加载预定数据量的业务数据,在该部分业务数据加载完成后终止剩余业务数据的加载过程,即默认为本线程中的业务数据已加载完成,然后继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程(该子线程执行完成),返回到主线程中。最后主线程可继续根据预置的业务加载流程继续后面的初始化加载操作。
由于在主线程中,针对那些需要加载大量业务数据的业务的子线程中仅加载了部分业务数据,从而降低了业务初始化加载时长。
进一步地,上述业务数据加载装置320还可包括:
第二数据加载模块,用于如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在主线程中开启一个新子线程,用于加载该指定业务对应的剩余业务数据,该新子线程的执行不影响主线程中其他线程的执行过程。
具体地,对于在上述指定业务的初始化加载的子线程中未被加载的业务数据,可以在主线程中再开启一个新子线程,用于加载指定业务对应的剩余业务数据,该新子线程的执行不影响主线程中其他线程的执行过程。被开启的子线程可以为至少两个,每个指定业务对应的剩余业务数据独立在一个新子线程中加载执行。并且主线程中任一其他业务的加载线程不以该新子线程形成依赖业务关系,也不会影响整个业务加载主线程的执行进度。主线程中的其他子线程(除了包含加载剩余业务的新子线程以外的子线程)可以按原有依赖关系执行业务加载流程。
进一步地,上述指定业务的业务数据可包括:即时通信应用中的好友数据,
相应地,上述业务数据加载装置320还可包括:
数据统计模块,用于在每次应用启用过程中,统计应用中的好友数据,并从中筛选指定数据量的好友数据,作为下次应用初始化加载流程中被指定在相应业务对应的初始化加载流程的子线程中进行加载。
由于每次业务服务过程中都会产生新的业务数据,所以需要从这些业务数据中筛选出需要在下次业务初始化过程中优先加载的预定数据量的业务数据,以在相应业务初始化子线程中进行加载,而剩余的业务数据可通过另行开启的新子线程中完成数据加载过程。
以即时通信应用中的好友数据为例,可以根据好友热度来选择优先加载的预定数据量的业务数据。
进一步地,上述数据统计模块可具体包括:
热度统计单元,用于根据对好友数据的业务访问情况,统计好友热度并排序;
数据筛选单元,用于筛选好友热度排序中好友热度最高的指定数据量的好友数据。
具体地,可以在用户使用即时通信应用过程中,针对用户对好友数据的业务访问情况(包括最近访问的好友,频繁访问的好友以及访问好友的时长等信息),统计这些好友的热度,然后根据好友热度值对这些好友进行排序。
例如,可以根据对好友数据的业务访问时间对好友标记时间戳,该时间戳数值越大,对应的业务访问时间越接近当前时间,好友热度值越高;然后按时间戳从大到小的顺序,对好友进行排序,以统计好友热度的排序情况。
最后筛选出好友热度排序中好友热度最高的指定数据量的好友数据作为下次应用初始化加载流程中被指定在相应业务对应的初始化加载流程的子线程中进行加载的好友数据。
下面通过至少两个实施例来进一步说明本申请的技术方案。
实施例一
基于上述业务数据加载的方案思想,如图4所示,其为本发明实施例示出的业务数据加载方法流程图一,该方法的执行主体为图3中所示的业务数据加载装置。如图4所示,该业务数据加载方法包括如下步骤:
S410,在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个子线程中对应执行应用包含的各业务对应的初始化加载流程。
具体地,在应用启动过程中,应用中的各业务模块都需要执行初始化加载流程,待初始化加载完成后,才能向外提供业务服务。应用的初始化加载流程通常在一个主线程中完成,该主线程中会启动至少两个子线程用于加载该应用所包含的各业务的初始化加载流程。每个子线程用于执行一个业务初始化加载流程,各子线程之间根据业务之间的依赖关系会存在依赖业务关系,即一个业务的初始化加载过程是基于另一个业务的初始化加载线程完成的结果。待主线程中的预定的业务(可以是所有业务也可以是部分业务)初始化加载完成后,应用则会跳转到应用的业务服务界面,供用户执行相应的业务操作。
S420,如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程。
在应用初始化加载流程中,执行各业务对应的初始化加载流程的子线程中,有些业务对应的待加载的业务数据量会比较大,加载时间较长。为了不影响业务的初始化加载时间,可以在指定业务(该指定业务包含的待加载的业务数据总量超过预定数据量)对应的子线程中,先加载预定数据量的业务数据,在该部分业务数据加载完成后直接终止剩余业务数据的加载过程,即默认为本线程中的业务数据已加载完成,然后继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程(该子线程执行完成),返回到主线程中。基于此,主线程可继续根据预置的业务加载流程继续后面的初始化加载操作。
由于在主线程中,针对那些需要加载大量业务数据的业务的子线程中仅加载了部分业务数据,从而可以大幅度降低业务初始化加载时长。
本发明提供的业务数据加载方法,在执行应用初始化加载流程的主线程中,针对那些需要加载大量业务数据的业务初始化加载流程,可以先在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,然后继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程返回到主线程中,从而在主线程中继续执行其他业务的初始化加载流程。
本方案可以避免因某个业务初始化加载流程中需要加载大量的业务数据,导致该业务初始化时长过长,从而导致其他依赖业务无法加载,或者使得整个应用初始化时长过长,保证应用的启动页面展示过程流畅,不会出现卡顿。
实施例二
如图5所示,为本发明实施例的业务数据加载方法流程图二。本实施例在图4所示方法的基础上,对业务数据的加载过程进行了补充方案说明。如图5所示,该业务数据加载方法包括如下步骤:
S510,在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个子线程中对应执行应用包含的各业务对应的初始化加载流程;
S520,如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程。
步骤S510~S520与上述步骤S410~S420对应相同。
S530,如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在主线程中开启一个新子线程,用于加载该指定业务对应的剩余业务数据,该新子线程的执行不影响主线程中其他线程的执行过程。
具体地,对于在上述指定业务的初始化加载的子线程中未被加载的业务数据,可以在主线程中再开启一个新子线程,用于加载指定业务对应的剩余业务数据,该新子线程的执行不影响主线程中其他线程的执行过程。被开启的子线程可以为至少两个,每个指定业务对应的剩余业务数据独立在一个新子线程中加载执行。并且主线程中任一其他业务的加载线程不以该新子线程形成依赖业务关系,也不会影响整个业务加载主线程的执行进度。主线程中的其他子线程(除了包含加载剩余业务的新子线程以外的子线程)可以按原有依赖关系执行业务加载流程。
本发明提供的业务数据加载方法,在图4所示方法的基础上,通过在主线程中启动新子线程用于加载剩余业务数据,既可以完成整个业务的所有业务数据的加载要求,又由于该新子线程的数据加载流程不影响主线程中其他正常子线程的执行,从而保证应用初始化加载流程顺利、快速的进行。
实施例三
如图6a所示,为本发明实施例的业务数据筛选方法流程图。本实施例可作为图4或图5所示的补充方案,本方法以即时通信应用中的好友数据作为待加载的业务数据,对每次应用初始化加载流程中优先加载的预定数据量的业务数据的筛选过程进行详细描述。如图6a所示,该业务数据筛选方法包括如下步骤:
S610,在每次应用启用过程中,统计应用中的好友数据,并从中筛选指定数据量的好友数据。
在即时通信类应用的初始化加载流程中,每次都要加载大量的好友数据,如果这些好友数据被一次性加载完成,那么势必会加载较长时间,影响应用的初始化加载流程的整体速度。因此,在基于上述数据加载方法的思想下,可以在每次应用启用过程中,统计应用中的好友数据(该数据包括过去已有的好友数据和本次应用启用后新增的好友数据),并从中筛选出指定数据量的好友数据,以作为下次业务初始化过程中优先加载的业务数据。
具体地,步骤S610可细化为如图6b所示的方法步骤,包括:
S611,根据对好友数据的业务访问情况,统计好友热度并排序;
在筛选指定数据量的好友数据时,可根据好友热度进行筛选。所谓好友热度即指当前用户与好友互动的程度,具体可以通过在用户使用即时通信应用过程中,针对用户对好友数据的业务访问情况(包括最近访问的好友,频繁访问的好友以及访问好友的时长等信息),统计这些好友的热度,然后根据好友热度值对这些好友进行排序。
例如,最简单的统计好友热度的方式是通过对好友的访问时间进行确定。例如根据对好友数据的业务访问时间对好友标记时间戳,时间戳数值越大,对应的业务访问时间越接近当前时间,好友热度值越高;然后按时间戳从大到小的顺序,对好友进行排序,以统计好友热度的排序情况。
S612,筛选好友热度排序中好友热度最高的指定数据量的好友数据。
具体地,根据统计的好友热度的排序情况,筛选好友热度排序中好友热度最高的指定数据量的好友数据作为下次业务初始化过程中优先加载的好友数据。
S620,将筛选出的好友数据作为下次应用初始化加载流程中被指定在相应业务对应的初始化加载流程的子线程中进行加载。
本发明提供的业务数据筛选方法,作为图4或图5的补充方案,以即时通信应用中的好友数据作为待加载的业务数据,对每次应用初始化加载流程中优先加载的预定数据量的业务数据的筛选过程进行详细描述,从而在加载好友数据时既可以优先加载用户潜在想访问的好友数据,又可以快速完成即时通信应用的初始化加载流程。
实施例四
如图7所示,为本发明实施例的业务数据加载方法流程图三。本实施例可作为图4所示方法的补充方案,在实施例三所示方法的基础上对数据加载过程进行详细描述。如图7所示,该业务数据加载方法包括如下步骤:
步骤一,根据好友热度从高到低从数据库加载最近的N条好友数据。
在初始化好友缓存开始后,执行包含加载好友数据的子线程会根据上一次启用应用后统计的好友数据选择其中的N条好友数据进行优先加载。这N条好友数据为对好友数据按好友热度从高到低进行排序后缓存到数据库中,并从该数据库中选择的最近的N条好友数据。N可以根据实际情况选择100到200等不同的值。
具体地,在按好友热度对好友数据进行排序时,可以首先在好友信息表增加一个时间戳字段,代表这个好友访问热度(即好友热度),时间戳这个值越大代表热度越高,时间戳这个值越小代表热度越低。每次有业务访问好友数据或者更新好友数据时,将这个时间戳更新为当前时间。在业务使用完后,将更新后的好友数据保存到数据库。
这里需要说明的是时间戳的大小对应真实时间的先后,时间越靠后,对应时间戳越大,例如:2018.02.02大于2018.01.02。
步骤二,判断是否还有未读取完的剩余好友数据?
在加载完数据库中举例当前最近的N条好友数据后,判定数据库中是否还有剩余未加载的好友数据。如果有则执行步骤三,否则直接执行步骤三。
步骤三,启动另一个线程加载剩余的所有好友数据。
例如,在即时通信类应用的初始化加载流程的主线程中另启动一个新子线程,在该子线程中加载上述剩余的未加载好友数据,且该新子线程的执行过程不影响主线程以及主线程中其他子线程的执行过程。
步骤四,缓存当前的N条好友数据,当前初始化好友线程直接返回。
在步骤一种加载完N条好友数据后,不管是否后续需要开启新子线程执行剩余好友数据的加载,都直接将该N条好友数据进行缓存,然后控制当前初始化好友线程直接返回,即该子线程执行完成。
需要说明的是,如果在实际加载过程中,该初始化好友线程中还包含其他的初始化流程部分,则需要继续执行该剩余初始化部分后,再控制当前初始化好友线程返回到主线程。
在当前初始化好友线程返回到主线程后,主线程还可以继续执行后续其他初始化流程。
另外,在选择优先加载的N条好友数据时,也可以依据其他实际意义的排序方法进行排序,不局限于好友热度,例如可以按访问好友的频率的高低,添加好友的顺序以及好友名称的首字母进行排序等方式。
本发明提供的业务数据加载方法,在实施例三所示方法的基础上,以即时通信类应用中的好友数据作为待加载的业务数据进行举例,对上述业务数据加载方法进行细化,将原先大量的好友数据分批次读取,保证让部分需要很快用到的好友数据优先读取,对于大量的短时间内用不到的好友数据用异步的方式进行加载,避免一次性加载过多好友数据所造成的业务初始化加载速度慢,从而保证应用初始化加载流程顺利、快速的进行。
实施例五
基于上述业务数据加载的方案思想,如图8所示,其为本发明实施例示出的业务数据加载方法流程图四,该方法的执行主体可为图3中所示的业务数据加载装置。如图8所示,该业务数据加载方法包括如下步骤:
S810,统计即时通信应用中的好友热度。
在即时通信应用启用过程中,可以对应用中当前用户的好友进行好友热度统计。
S820,在执行即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据。
在每次执行即时通信应用中的好友数据的初始化加载流程中,可以根据以往统计的当前用户的所有好友的好友热度进行相应的好友数据的加载,从而保证当前用户可以快速和想要沟通的好友进行交互。
进一步地,在统计即时通信应用中的好友热度的步骤中可包括:
在每次即时通信应用启用过程中,根据对好友数据的业务访问情况,统计好友热度并排序;
本步骤与步骤S611的内容相似。
相应的,在执行即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据可包括:
根据上一次即时通信应用启用过程中所统计出的好友热度的排序结果按好友热度值从高到低顺序加载好友数据。
具体地,在每次加载好友数据时,可将上一次启动即时通信应用过程中统计出的好友热度值与待加载的好友数据进行一一对应并将好友数据按好友热度值从高到低的顺序进行数据加载。
进一步地,上述根据对好友数据的业务访问情况,统计好友热度并排序可包括:
根据对好友数据的业务访问时间对好友标记时间戳,时间戳数值越大,对应的业务访问时间越接近当前时间,好友热度值越高;
按时间戳从大到小的顺序,对好友进行排序,以统计好友热度的排序情况。
上述步骤可参考图6b中所示的方法步骤。
另外,在加载好友数据时也可参考前述实施例中分批次多线程进行数据加载,以保证即时通信类应用的初始化过程顺利完成。
本发明提供的业务数据加载方法,针对即时通信类应用中的好友数据的加载过程,按照待加载的好友数据的好友热度值进行加载,可以方便用户进入应用界面后与自己最想要沟通的好友进行交互。
实施例六
如图9所示,为本发明实施例的业务数据加载装置结构图一,该业务数据加载装置可设置在图3所示的业务数据加载系统中,用于执行如图4所示的方法步骤,其包括:
线程启动模块910,用于在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个子线程中对应执行应用包含的各业务对应的初始化加载流程;
第一数据加载模块920,用于如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程。
进一步地,如图10所示,在图9所示装置的基础上,上述装置还可包括:
第二数据加载模块101,用于如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在主线程中开启一个新子线程,用于加载该指定业务对应的剩余业务数据,该新子线程的执行不影响主线程中其他线程的执行过程。
图10所示的装置结构可用于执行图5所示的方法步骤。
进一步地,上述业务数据可包括:即时通信应用中的好友数据。
相应地,如图11所示,在上述所示装置的基础上,还可包括:
数据统计模块111,用于在每次应用启用过程中,统计应用中的好友数据,并从中筛选指定数据量的好友数据,作为下次应用初始化加载流程中被指定在相应业务对应的初始化加载流程的子线程中进行加载。
进一步地,如图12所示,上述数据统计模块111可具体包括:
热度统计单元121,用于根据对好友数据的业务访问情况,统计好友热度并排序;
数据筛选单元122,用于筛选好友热度排序中好友热度最高的指定数据量的好友数据。
进一步地,上述热度统计单元121可具体包括:
根据对好友数据的业务访问时间对好友标记时间戳,所述时间戳数值越大,对应的业务访问时间越接近当前时间,好友热度值越高;
按所述时间戳从大到小的顺序,对好友进行排序,以统计好友热度的排序情况。
图11-图12所示的装置结构可用于执行图6a、图6b和图7所示的方法步骤。
本发明提供的业务数据加载装置,在执行应用初始化加载流程的主线程中,针对那些需要加载大量业务数据的业务初始化加载流程,可以先在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,然后继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程返回到主线程中,从而在主线程中继续执行其他业务的初始化加载流程。
本方案可以避免因某个业务初始化加载流程中需要加载大量的业务数据,导致该业务初始化时长过长,从而导致其他依赖业务无法加载,或者使得整个应用初始化时长过长,保证应用的启动页面展示过程流畅,不会出现卡顿。
进一步地,通过在主线程中启动新子线程用于加载剩余业务数据,既可以完成整个业务的所有业务数据的加载要求,又由于该新子线程的数据加载流程不影响主线程中其他正常子线程的执行,从而保证应用初始化加载流程顺利、快速的进行。
进一步地,以即时通信应用中的好友数据作为待加载的业务数据,对每次应用初始化加载流程中优先加载的预定数据量的业务数据的筛选过程进行详细描述,从而在加载好友数据时既可以优先加载用户潜在想访问的好友数据,又可以快速完成即时通信应用的初始化加载流程。
实施例七
如图13所示,为本发明实施例的业务数据加载装置结构图一,该业务数据加载装置可设置在图3所示的业务数据加载系统中,用于执行如图8所示的方法步骤,其包括:
热度统计模块131,用于统计即时通信应用中的好友热度;
数据加载模块132,用于在执行即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据。
进一步地,上述热度统计模块131,可具体用于在每次即时通信应用启用过程中,根据对好友数据的业务访问情况,统计好友热度并排序;
相应的,数据加载模块132,可具体用于根据上一次即时通信应用启用过程中所统计出的好友热度的排序结果按好友热度值从高到低顺序加载好友数据。
进一步地,上述热度统计模块131用于,
根据对好友数据的业务访问时间对好友标记时间戳,时间戳数值越大,对应的业务访问时间越接近当前时间,好友热度值越高;
按时间戳从大到小的顺序,对好友进行排序,以统计好友热度的排序情况。
本发明提供的业务数据加载装置,针对即时通信类应用中的好友数据的加载过程,按照待加载的好友数据的好友热度值进行加载,可以方便用户进入应用界面后与自己最想要沟通的好友进行交互。
实施例八
前面实施例六描述了业务数据加载装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图14所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器141和处理器142。
存储器141,用于存储程序。
除上述程序之外,存储器141还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器141可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器142,耦合至存储器141,用于执行存储器141中的程序,以用于:
在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行应用包含的各业务对应的初始化加载流程;
如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至后续初始化加载流程部分完成后关闭该子线程。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图14所示,电子设备还可以包括:通信组件143、电源组件144、音频组件145、显示器146等其它组件。图14中仅示意性给出部分组件,并不意味着电子设备只包括图14所示组件。
通信组件143被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件143经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件143还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件144,为电子设备的各种组件提供电力。电源组件144可以包括电源管理系统,一个或至少两个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件145被配置为输出和/或输入音频信号。例如,音频组件145包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器141或经由通信组件143发送。在一些实施例中,音频组件145还包括一个扬声器,用于输出音频信号。
显示器146包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或至少两个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
实施例九
前面实施例七描述了业务数据加载装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图15所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器151和处理器152。
存储器151,用于存储程序。
除上述程序之外,存储器151还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器151可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器152,耦合至存储器151,用于执行存储器151中的程序,以用于:
统计即时通信应用中的好友热度;
在执行所述即时通信应用中的好友数据的初始化加载流程中,根据好友热度加载好友数据。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图15所示,电子设备还可以包括:通信组件153、电源组件154、音频组件155、显示器156等其它组件。图15中仅示意性给出部分组件,并不意味着电子设备只包括图15所示组件。
通信组件153被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件153经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件153还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件154,为电子设备的各种组件提供电力。电源组件154可以包括电源管理系统,一个或至少两个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件155被配置为输出和/或输入音频信号。例如,音频组件155包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器151或经由通信组件153发送。在一些实施例中,音频组件155还包括一个扬声器,用于输出音频信号。
显示器156包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或至少两个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (6)
1.一种业务数据加载方法,其特征在于,包括:
在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;
如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程,针对指定业务的该子线程中未完成初始化加载的所述剩余业务数据,在所述主线程中开启一个新子线程,用于加载该剩余业务数据,所述新子线程的执行不影响所述主线程中其他线程的执行过程。
2.根据权利要求1所述的方法,其特征在于,所述业务数据包括:即时通信应用中的好友数据,
所述方法还包括:
在每次应用启用过程中,统计应用中的好友数据,并从中筛选指定数据量的好友数据,作为下次应用初始化加载流程中被指定在相应业务对应的初始化加载流程的子线程中进行加载。
3.根据权利要求2所述的方法,其特征在于,所述统计应用中的好友数据,并从中筛选所述指定数据量的好友数据包括:
根据对好友数据的业务访问情况,统计好友热度并排序;
筛选好友热度排序中好友热度最高的所述指定数据量的好友数据。
4.根据权利要求3所述的方法,其特征在于,所述根据对好友数据的业务访问情况,统计好友热度并排序包括:
根据对好友数据的业务访问时间对好友标记时间戳,所述时间戳数值越大,对应的业务访问时间越接近当前时间,好友热度值越高;
按所述时间戳从大到小的顺序,对好友进行排序,以统计好友热度的排序情况。
5.一种业务数据加载装置,其特征在于,包括:
线程启动模块,用于在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;
第一数据加载模块,用于如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程,针对指定业务的该子线程中未完成初始化加载的所述剩余业务数据,在所述主线程中开启一个新子线程,用于加载该剩余业务数据,所述新子线程的执行不影响所述主线程中其他线程的执行过程。
6.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
在执行应用初始化加载流程的主线程中,启动至少两个子线程,在每个所述子线程中对应执行所述应用包含的各业务对应的初始化加载流程;
如果指定业务对应的子线程中,待加载的业务数据的总量超过预定数据量,则在所述预定数据量的业务数据加载完成后终止剩余业务数据的加载过程,继续执行该指定业务对应的后续初始化加载流程部分,直至所述后续初始化加载流程部分完成后关闭该子线程,针对指定业务的该子线程中未完成初始化加载的所述剩余业务数据,在所述主线程中开启一个新子线程,用于加载该剩余业务数据,所述新子线程的执行不影响所述主线程中其他线程的执行过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810489670.2A CN110515672B (zh) | 2018-05-21 | 2018-05-21 | 业务数据加载方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810489670.2A CN110515672B (zh) | 2018-05-21 | 2018-05-21 | 业务数据加载方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110515672A CN110515672A (zh) | 2019-11-29 |
CN110515672B true CN110515672B (zh) | 2023-01-31 |
Family
ID=68621665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810489670.2A Active CN110515672B (zh) | 2018-05-21 | 2018-05-21 | 业务数据加载方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515672B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580886A (zh) * | 2020-05-11 | 2020-08-25 | 上海英方软件股份有限公司 | 一种通过时间片轮转加载大量数据的方法及装置 |
CN112925587A (zh) * | 2021-03-11 | 2021-06-08 | 北京百度网讯科技有限公司 | 用于初始化应用的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679548A (zh) * | 2013-12-03 | 2015-06-03 | 联想(北京)有限公司 | 一种信息处理的方法及电子设备 |
WO2017068310A1 (en) * | 2015-10-21 | 2017-04-27 | Hewlett Packard Enterprise Development Lp | Assignment of processes to computational resources |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4101251B2 (ja) * | 2005-05-24 | 2008-06-18 | 富士通株式会社 | 負荷分散プログラム、負荷分散方法、及び負荷分散装置 |
KR100962531B1 (ko) * | 2007-12-11 | 2010-06-15 | 한국전자통신연구원 | 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크를 수행하는 장치 및 이를 이용한 프로세싱 방법 |
CN101355528B (zh) * | 2008-09-16 | 2010-11-03 | 腾讯科技(深圳)有限公司 | 一种即时通讯软件的好友筛选展示方法及系统 |
US10169740B2 (en) * | 2009-12-31 | 2019-01-01 | International Business Machines Corporation | Tag cloud buddy list for messaging contacts |
CN103618662B (zh) * | 2013-11-22 | 2016-10-05 | 北京奇虎科技有限公司 | 一种实现即时通讯的方法和装置 |
CN105045655A (zh) * | 2015-05-15 | 2015-11-11 | 广东小天才科技有限公司 | 应用资源加载方法和装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN107832100B (zh) * | 2017-10-27 | 2020-12-04 | 平安普惠企业管理有限公司 | 一种apk插件的加载方法及其终端 |
-
2018
- 2018-05-21 CN CN201810489670.2A patent/CN110515672B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679548A (zh) * | 2013-12-03 | 2015-06-03 | 联想(北京)有限公司 | 一种信息处理的方法及电子设备 |
WO2017068310A1 (en) * | 2015-10-21 | 2017-04-27 | Hewlett Packard Enterprise Development Lp | Assignment of processes to computational resources |
Also Published As
Publication number | Publication date |
---|---|
CN110515672A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108848245B (zh) | 一种锁屏方法及移动终端 | |
US20140207811A1 (en) | Electronic device for determining emotion of user and method for determining emotion of user | |
CN105488112A (zh) | 信息推送方法及装置 | |
EP2503827A1 (en) | Method and device for selecting access point name | |
US20090324098A1 (en) | Mobile phone with selective photographic system and method | |
CN106534562B (zh) | 文件删除方法及装置 | |
CN105141496A (zh) | 一种即时通信消息播放方法及装置 | |
CN110515672B (zh) | 业务数据加载方法、装置以及电子设备 | |
CN107679718A (zh) | 名单分配方法、设备以及计算机可读存储介质 | |
CN110391966B (zh) | 一种消息处理方法、装置和用于消息处理的装置 | |
CN108320208A (zh) | 车辆推荐方法及装置 | |
CN106471493B (zh) | 用于管理数据的方法和装置 | |
CN108073610B (zh) | 实现网页页面加载的方法及装置 | |
CN109962983B (zh) | 一种点击率统计方法及装置 | |
CN104407981A (zh) | 内存管理方法和装置 | |
CN113938551A (zh) | 缓存方法、装置和电子设备 | |
CN112153218B (zh) | 页面显示方法、装置、可穿戴设备及存储介质 | |
CN108573697B (zh) | 一种语言模型更新方法、装置及设备 | |
CN106776990B (zh) | 一种信息处理方法、装置及电子设备 | |
CN111813307A (zh) | 应用程序显示方法、装置及电子设备 | |
CN104008155A (zh) | 资源控制方法、装置和电子设备 | |
CN115422203A (zh) | 区块链分布式系统的数据管理方法、装置、设备及介质 | |
CN111443945A (zh) | 组件代码修改方法及设备 | |
CN112632184A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN117111857B (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 |