一种基于嵌入式的网络资源预览管理方法与流程

文档序号:17408189发布日期:2019-04-16 22:16阅读:188来源:国知局
一种基于嵌入式的网络资源预览管理方法与流程

本发明涉及计算机技术领域,特别涉及一种基于嵌入式的网络资源预览管理方法。



背景技术:

随着数字技术与网络技术的迅猛发展,越来越多用户喜欢使用智能移动终端等携带有嵌入式系统的网络智能终端来浏览网络资源,例如,通过网络机顶盒,用户可方便地获取网络上的海量视频资源进行点播和预览图片资源。这时,能够快速高效从网络上把资源下载到设备上的技术尤为重要,因为终端设备要显示网络图片等资源,需要先把数据从网络上下载到内存里。

为了尽可能快的下载尽可能多的资源,一般可以通过建立多个下载任务,以进行多任务并行下载,某个任务下载完成,就可以预览某部分的资源。比如对于海量网络视频资源,要预览它们的简介图片,可以对每个图片资源都建立下载任务,多个任务同时下载,只要某个下载完成就可以在终端显示该图片。

然而,对于嵌入式系统而言,往往内存非常有限,不可能建立非常多的下载任务,这时一般会把网络资源分成一部分一部分地预览显示,相当于常见的一页一页显示,通过建立一定数目的下载任务对一页里面的资源进行并行下载。

那么,问题在于,当用户想快速预览下一部分资源时,相当于翻页操作,就必须等待前面部分的任务终止和资源释放,每个任务里的网络的连接和关闭都要阻塞一定时间,特别地当网络环境不好的情况下,这个等待阻塞的时间会很长,对于终端用户而言就相当于设备卡死了一段时间。

综上所述可以看出,如何实现快速流畅地切换至下一部分预览资源是目前亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于嵌入式的网络资源预览管理方法,实现了快速流畅地切换至下一部分预览资源的目的。其具体方案如下:

一种基于嵌入式的网络资源预览管理方法,包括:

步骤S11:建立线程池数组,并对所述线程池数组进行清空处理;其中,所述线程池数组包括N个对象,N为正整数;

步骤S12:当需要对一个显示页面上的网络资源进行预览,则遍历所述线程池数组,为所述线程池数组中的每个对象所对应的序号TaskID创建相应的关闭线程,以在关闭线程中实现将嵌入式系统中的Join方法运用于与该关闭线程对应的下载线程的线程标识号TheadID;其中,一个显示页面上包含M个网络资源,M为小于或等于N的正整数;

步骤S13:为当前显示页面上的每个网络资源分配空置的对象;每当成功地为任一个网络资源分配对象后,则为该对象创建独立的下载线程,然后启动该下载线程以下载相应的资源预览信息和记录相应的线程标识号TheadID。

优选的,步骤S13中,所述为当前显示页面上的每个网络资源分配空置的对象的过程,包括:

按照网络资源在显示页面上的显示顺序,依次为当前显示页面上的每个网络资源分配空置的对象。

优选的,步骤S13中,所述记录相应的线程标识号TheadID的过程,包括:

将与下载线程对应的线程标识号TheadID记录至与该下载线程对应的对象中。

优选的,与序号TaskID对应的关闭线程的工作过程包括:

获取启动关闭线程命令,传入相应的序号TaskID,获取所述线程池数组的互斥锁;

判断所述线程池数组中的第TaskID个对象是否为空,如果是,则结束,如果否,则对第TaskID个对象进行上锁;

获取第TaskID个对象中保存的线程标识号TheadID,将第TaskID个对象中的结束标记位Stop设为1;

对第TaskID个对象进行解锁,并释放所述线程池数组的互斥锁;

将嵌入式系统中的Join方法运用于从第TaskID个对象中获取到的线程标识号TheadID,直到与该线程标识号TheadID对应的下载线程完全结束并释放资源为止;然后再次获取互斥锁,将第TaskID个对象置为空,释放互斥锁,并结束;其中,释放资源包括释放相应的内存空间以及释放第TaskID个对象中存储的资源。

优选的,步骤S13中,与任一对象对应的下载线程的工作过程包括:

通过该对象中记录的参数启动下载线程,根据http协议建立网络连接,然后申请与需下载资源预览信息的大小相一致的内存空间,通过http握手,从服务器上陆续下载相应的资源预览信息并保存至内存中,并且在下载的过程中不断检测该对象中的结束标记位Stop是否为1,如果是,则直接释放相应的内存空间以及该对象中存储的资源并结束,如果否,则继续下载相应的资源预览信息直到下载完毕。

本发明中,网络资源预览管理方法,包括:建立线程池数组,并对线程池数组进行清空处理;其中,线程池数组包括N个对象,N为正整数;当需要对一个显示页面上的网络资源进行预览,则遍历线程池数组,为线程池数组中的每个对象所对应的序号TaskID创建相应的关闭线程,以在关闭线程中实现将嵌入式系统中的Join方法运用于与该关闭线程对应的下载线程的线程标识号TheadID;其中,一个显示页面上包含M个网络资源,M为小于或等于N的正整数;为当前显示页面上的每个网络资源分配空置的对象;每当成功地为任一个网络资源分配对象后,则为该对象创建独立的下载线程,然后启动该下载线程以下载相应的资源预览信息和记录相应的线程标识号TheadID。可见,本发明在下载资源预览信息之前,为每个对象对应的TaskID创建相应的关闭线程,并且在下载线程启动之后,将Join方法运用于该下载线程对应的线程标识号TheadID,从而保证预先启动的下载线程均能被后台的关闭线程所控制,从而使得资源可以被快速地回收,避免对新的下载任务造成影响,由此实现了快速流畅地切换至下一部分预览资源的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1本发明实施例公开的一种基于嵌入式的网络资源预览管理方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种基于嵌入式的网络资源预览管理方法,参见图1所示,该方法包括:

步骤S11:建立线程池数组,并对线程池数组进行清空处理;其中,线程池数组包括N个对象,N为正整数。

需要说明的是,由于系统中的内存空间有限,所以无法同时打开过多的线程,也即,上述N的取值不宜过大。

步骤S12:当需要对一个显示页面上的网络资源进行预览,则遍历线程池数组,为线程池数组中的每个对象所对应的序号TaskID创建相应的关闭线程,以在关闭线程中实现将嵌入式系统中的Join方法运用于与该关闭线程对应的下载线程的线程标识号TheadID;其中,一个显示页面上包含M个网络资源,M为小于或等于N的正整数。

可以理解的是,一个显示页面上通常包含多个网络资源,为了确保网络资源的预览效果,本实施例要求一个显示页面上网络资源的数目小于或等于上述线程池数组中对象的数目。

需要说明的是,上述Join方法是嵌入式操作系统中的一种系统方法,运用Join方法可以使对应的TheadID的下载线程关闭并释放线程所占有的资源为止,从而能够保证前面启动的下载线程都可以被后台的关闭线程所控制,使得资源能够得到回收。

步骤S13:为当前显示页面上的每个网络资源分配空置的对象;每当成功地为任一个网络资源分配对象后,则为该对象创建独立的下载线程,然后启动该下载线程以下载相应的资源预览信息和记录相应的线程标识号TheadID。

可以理解的是,上述步骤是针对一个显示页面上的网络资源展开的,当翻页或浏览下一部分预览资源时,只需重复上述步骤便可。

本发明实施例中,网络资源预览管理方法,包括:建立线程池数组,并对线程池数组进行清空处理;其中,线程池数组包括N个对象,N为正整数;当需要对一个显示页面上的网络资源进行预览,则遍历线程池数组,为线程池数组中的每个对象所对应的序号TaskID创建相应的关闭线程,以在关闭线程中实现将嵌入式系统中的Join方法运用于与该关闭线程对应的下载线程的线程标识号TheadID;其中,一个显示页面上包含M个网络资源,M为小于或等于N的正整数;为当前显示页面上的每个网络资源分配空置的对象;每当成功地为任一个网络资源分配对象后,则为该对象创建独立的下载线程,然后启动该下载线程以下载相应的资源预览信息和记录相应的线程标识号TheadID。

可见,本发明实施例在下载资源预览信息之前,为每个对象对应的TaskID创建相应的关闭线程,并且在下载线程启动之后,将Join方法运用于该下载线程对应的线程标识号TheadID,从而保证预先启动的下载线程均能被后台的关闭线程所控制,从而使得资源可以被快速地回收,避免对新的下载任务造成影响,由此实现了快速流畅地切换至下一部分预览资源的目的。

本发明实施例公开了一种具体的基于嵌入式的网络资源预览管理方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

上一实施例步骤S13中,为当前显示页面上的每个网络资源分配空置的对象的过程,具体包括:按照网络资源在显示页面上的显示顺序,依次为当前显示页面上的每个网络资源分配空置的对象。也即,当线程池数组中存在空置的对象时,则可按照网络资源的显示顺序,依次为网络资源分配空置的对象。

可以理解的是,如果当前线程池数组中不存在任何空置的对象,这说明后台下载线程已经启动足够多了,此时无法为网络资源分配对象,可以选择继续等待,直到有空置的对象,当然,也可以选择直接确定启动失败。

另外,上一实施例步骤S13中,记录相应的线程标识号TheadID的过程,具体包括:将与下载线程对应的线程标识号TheadID记录至与该下载线程对应的对象中。

更具体的,本实施例中,与序号TaskID对应的关闭线程的工作过程包括:

步骤S201获取启动关闭线程命令,传入相应的序号TaskID,获取线程池数组的互斥锁,以保证当前只有一个地方在修改线程池数组的值;

步骤S202:判断线程池数组中的第TaskID个对象是否为空,如果是,则结束,如果否,则对第TaskID个对象进行上锁,以保证当前只有这里在修改对象里的值;

步骤S203:获取第TaskID个对象中保存的线程标识号TheadID,将第TaskID个对象中的结束标记位Stop设为1;需要说明的是,结束标记位Stop为1代表结束下载线程的唯一信号。

步骤S204:对第TaskID个对象进行解锁,并释放线程池数组的互斥锁;

步骤S205:将嵌入式系统中的Join方法运用于从第TaskID个对象中获取到的线程标识号TheadID,直到与该线程标识号TheadID对应的下载线程完全结束并释放资源为止;然后再次获取互斥锁,将第TaskID个对象置为空,释放互斥锁,并结束;其中,释放资源包括释放相应的内存空间以及释放第TaskID个对象中存储的资源。

进一步的,上一实施例步骤S13中,与任一对象对应的下载线程的工作过程具体包括:通过该对象中记录的参数启动下载线程,根据http协议建立网络连接,然后申请与需下载资源预览信息的大小相一致的内存空间,通过http握手,从服务器上陆续下载相应的资源预览信息并保存至内存中,并且在下载的过程中不断检测该对象中的结束标记位Stop是否为1,如果是,则直接释放相应的内存空间以及该对象中存储的资源并结束,如果否,则继续下载相应的资源预览信息直到下载完毕。

需要说明的是,当网络连接失败或申请内存空间失败时,可选择将下载线程挂起,并等待结束标记位变成1,进而释放相应的资源。

最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种基于嵌入式的网络资源预览管理方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1