一种基于多线程的文件格式在线转换方法及系统与流程

文档序号:11155464阅读:210来源:国知局
一种基于多线程的文件格式在线转换方法及系统与制造工艺

本发明涉及文件格式转换的技术领域,具体涉及一种基于多线程的文件格式在线转换方法及系统。



背景技术:

网络时代文件不断向中心聚集,要获知文件的信息,文件首先要以直观呈现的方式给用户展示,传统的Office文件、PDF文件等往往需要特定的Office工具或PDF阅读器、通过下载文件到本地才能打开阅读,不利于直观、快捷地展现文件效果。随着云技术的发展,市面上出现了很多云盘、文库类的产品,这些产品大都提供文件的在线预览功能。在对文件进行在线预览时,通常需要将待预览的文件转换成目标文件格式,目前,对在线预览文件的格式转换的处理效率比较低,当多个用户同时在线预览多个文件时,就会遇到大量并发的情况,这样,就会增加在线加载文件的时间,进而增加预览时间,更为严重的情况下,可能会造成网络崩溃,所以如何进行并发控制,是现有技术的热门问题。



技术实现要素:

针对现有技术中的上述缺陷,本发明提供了一种基于多线程的文件格式在线转换方法及系统,能够控制在线预览文件时的并发状况,同时,可以提高处理效率,节省在线预览的时间。

第一方面,本发明提供的一种基于多线程的文件格式在线转换方法,包括:

接收用于请求对指定文件进行格式转换的请求;

根据所述请求从预先建立的线程池中调取一个线程;

利用所述线程调用转换组件;

利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件;

将所述转换后的文件作为所述请求的响应,使用户可以在线预览所述转换后的文件。

可选的,在所述接收用于请求对指定文件进行格式转换的请求的步骤之前,还包括:

创建具有初始容量的线程池,所述线程池中包括多个可独立进行文件格式转换的线程。

可选的,在所述根据所述请求从预先建立的线程池中调取一个线程的步骤之前,还包括:

在线程池中运行的线程中查找是否已有针对所述指定文件进行格式转换的线程;

若有,则等待所述线程运行完成,将所述线程转换后的文件作为所述请求的响应。

可选的,在所述利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件的步骤之后,还包括:

判断是否还有针对所述指定文件的其它请求;

若没有,则将所述转换后的文件存储到缓存中;

若有,则根据所述其它请求处理所述指定文件;所述将所述转换后的文件作为所述请求的响应,包括:将根据所述其它请求处理过的文件作为所述请求的响应。

可选的,所述缓存包括:服务器缓存和/或前端播放器缓存。

可选的,在所述根据所述请求从预先建立的线程池中调取一个线程的步骤之前,还包括:

在缓存中查找是否已有对所述指定文件进行转换后的文件;

若有,则从所述缓存中调用所述转换后的文件作为所述请求的响应。

可选的,所述接收用于请求对指定文件进行格式转换的请求,包括:

接收多个客户端同时发起的用于请求对指定文件进行格式转换的多个相同的请求。

第二方面,本发明提供的一种基于多线程的文件格式在线转换系统,包括:

请求接收模块,用于接收用于请求对指定文件进行格式转换的请求;

线程调取模块,用于根据所述请求从预先建立的线程池中调取一个线程;

转换组件调用模块,用于利用所述线程调用转换组件;

格式转换模块,用于利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件;

响应模块,用于将所述转换后的文件作为所述请求的响应,使用户可以在线预览所述转换后的文件。

可选的,所述基于多线程的文件格式在线转换系统,还包括:

线程池创建模块,用于创建具有初始容量的线程池,所述线程池中包括多个可独立进行文件格式转换的线程。

可选的,所述基于多线程的文件格式在线转换系统,还包括:

线程查找模块,用于在线程池中运行的线程中查找是否已有针对所述指定文件进行格式转换的线程;

若有,则等待所述线程运行完成,将所述线程转换后的文件作为所述请求的响应。

可选的,所述基于多线程的文件格式在线转换系统,还包括:

其它请求判断模块,用于判断是否还有针对所述指定文件的其它请求;

若没有,则将所述转换后的文件存储到缓存中;

若有,则根据所述其它请求处理所述指定文件;所述将所述转换后的文件作为所述请求的响应,包括:将根据所述其它请求处理过的文件作为所述请求的响应。

可选的,所述缓存包括:服务器缓存和/或前端播放器缓存。

可选的,所述基于多线程的文件格式在线转换系统,还包括:

缓存查找模块,用于在缓存中查找是否已有对所述指定文件进行转换后的文件;

若有,则从所述缓存中调用所述转换后的文件作为所述请求的响应。

可选的,所述请求接收模块,包括:

多个相同请求接收单元,用于接收多个客户端同时发起的用于请求对指定文件进行格式转换的多个相同的请求。

由以上技术方案可知,本发明提供了一种基于多线程的文件格式在线转换方法,包括:接收用于请求对指定文件进行格式转换的请求;根据所述请求从预先建立的线程池中调取一个线程;利用所述线程调用文件转换组件;利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件;将所述转换后的文件作为所述请求的响应,使用户可以在线预览所述转换后的文件。

这种多线程的文件格式在线转换方法,通过引入线程池的技术,首先,从所述线程池中调取一个线程,然后利用所述线程调用转换组件,最后利用所述线程和所述转换组件对所述指定文件进行格式转换,这样就可以同时采用独立的多个线程对多个文件分别进行格式转换,可以采用多个线程处理多个文件,可以实现同时对多个文件进行格式转换的过程,不需要排队等线程,可以减小在线加载文件的时间,进而节省在线预览的时间,提高处理效率;同时,利用这种方法还可以同时响应多个文件格式转换的请求,能够解决在线预览文件时的并发状况,可以使用户同时在线预览多个文件,能够提高用户体验。

本发明提供的一种基于多线程的文件格式在线转换系统,与上述基于多线程的文件格式在线转换方法出于相同的发明构思,具有相同的有益效果。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1示出了本发明第一实施例提供的一种基于多线程的文件格式在线转换方法的流程图;

图2示出了本发明第二实施例提供的一种基于多线程的文件格式在线转换系统的示意图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本发明使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

为了便于理解,在此对本发明的整体发明构思进行说明:

本发明提供的基于多线程的文件格式在线转换方法及系统,可安装在服务器、智能终端等载体上。本发明提供的一种基于多线程的文件格式在线转换方法及系统,整体上同属于一个相同的发明构思,第一步,接收用于请求对指定文件进行格式转换的请求;第二步,根据所述请求从预先建立的线程池中调取一个线程;第三步,利用所述线程调用文件转换组件;第四步,利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件;第五步,将所述转换后的文件作为所述请求的响应,使用户可以在线预览所述转换后的文件。本发明提供的基于多线程的文件格式在线转换方法及系统,通过引入线程池技术,利用所述线程池中线程调用文件转换组件,利用所述线程和所述转换组件对指定文件进行格式转换,最终,使用户可以在线预览经过格式转换后的文件。在线程池中有多个独立的线程,这样就可以同时采用独立的线程对多个文件分别进行格式转换,不需要排队等线程,可以减小在线加载文件的时间,进而提高处理效率,减小在线预览时间,同时,通过利用这种方法,能够控制在线预览文件时的并发状况,进而保护网络环境。

本发明提供了一种基于多线程的文件格式在线转换方法及系统。下面结合附图对本发明的实施例进行说明。

图1示出了本发明第一实施例所提供的一种基于多线程的文件格式在线转换方法的流程图。如图1所示,本发明第一实施例提供的一种基于多线程的文件格式在线转换方法包括以下步骤:

步骤S101:接收用于请求对指定文件进行格式转换的请求。

在本步骤中,所述请求是用户在智能终端在线预览文件时智能终端发出的。当用户在智能终端执行在线预览指定文件的操作后,所述智能终端就会发出一个对所述指定文件进行格式转换的请求,根据所述请求可以将所述指定文件转换成目标格式,所述目标格式可以是默认的,也可以是用户自己选择,所述目标格式是指用户在线预览所述指定文件时,在线看到的文件的格式。所述目标格式包括:HTML、SWF等格式。

其中,所述指定文件可以是用户上传到网上的文件,也可以是网络上存在的文件。例如,所述指定文件可以是云盘中的文件、文库中的文件、邮箱中的邮件、阅读器中的文件等文件中的任意一种。所述指定文件的内容可以是文本、图片、视频等中的一种或多种的组合。所述指定文件的格式可以是doc、xls、ppt、pdf、gif、rmvb等格式中的任意一种。因此,本发明可以应用于不同的文件格式,应用范围广。本发明支持多种不同的文件预览的格式,能够将文件转换成高质量的网页文件,可以提高用户体验。

在利用本发明进行转换时,在本步骤之前,还包括:创建具有初始容量的线程池,所述线程池中包括多个可独立进行文件格式转换的线程。在使用本发明的服务器或智能终端上需要创建线程池,当所述服务器或智能终端启动时,创建线程池,所述线程池配置有初始容量,可以保证多个文件的格式转换。所述线程池的数量不限,可以是100、1000、2000等,可以根据所述服务器或智能终端的需要进行创建。线程越多可以同时处理的文件就越多,但是,对服务器或智能终端的要求就越高。

所述接收用于请求对指定文件进行格式转换的请求,包括:接收一个客户端发起的用于请求对指定文件进行格式转换的一个请求、接收多个客户端发起的用户请求对指定文件进行格式转换的多个相同的请求、接收多个客户端同时发起的用于请求对指定文件进行格式转换的多个相同的请求、接收一个客户端发起的用于请求对多个指定文件进行格式转换的多个请求、接收多个客户端发起的用于请求对多个指定文件进行格式转换的多个请求。这都在本发明的保护范围内。

步骤S102:根据所述请求从预先建立的线程池中调取一个线程。

在本步骤之前,当接收到用于请求对指定文件进行格式转换的请求时,需要识别所述指定文件的信息。所述指定文件的信息,包括所述指定文件的原始格式、名称等信息,所述原始格式是指还没进行格式转换的所述指定文件的格式。可以通过所述指定文件的头信息和/或后缀名来识别所述指定文件。在识别所述指定文件的信息后,根据所述指定文件的信息,在线程池中运行的线程中查找是否已有针对所述指定文件进行格式转换的线程,若有,则等待所述线程运行完成,将所述线程转换后的文件作为所述请求的响应;若没有,则需要从预先建立的线程池中调取一个线程来对所述指定文件进行格式转换。通过识别,可以判断出两个指定文件是否是同一个指定文件,是之后调用线程的基础。

在本步骤中,所述请求是指对用于请求指定文件进行格式转换的请求,可以是一个客户端发起的,也可以是多个客户端发起的。可以是一个客户端一次发起的对所述指定文件进行格式转换的请求,可以是一个客户端多次发起的对所述指定文件进行格式转换的多个相同的请求,可以是多个客户端多次不同时间发起的对所述指定文件进行格式转换的多个相同的请求,可以是多个客户端同时发起的对所述指定文件进行格式转换的多个相同的请求,可以看出上述几种情况都是对同一个指定文件进行格式转换。通过对所述指定文件的识别,可以判断出多个请求中的指定文件是否是同一个指定文件。

当接收到对同一个指定文件进行格式转换的请求时,则从预先建立的线程池中调取一个线程进行格式转换。这样,就可以避免重复对同一个文件进行格式转换,可以减少资源的浪费。当然,在接收到对指定文件进行格式转换的请求时,也可以不对所述指定文件进行识别,可以从所述线程池中调用多个线程来处理对同一个指定文件进行格式转换的多个相同的请求,这也在本发明的保护范围内。

当接收到多个客户端同时发起的用于请求对指定文件进行格式转换的多个相同的请求时,只需要随机根据其中一个请求从预先建立的线程池中调取一个线程,其它请求等待所述线程运行完成,将所述线程转换后的文件作为所述请求的响应。

当接收到多个客户端不同时间发起的用于请求对指定文件进行格式转换的多个相同的请求时,则从预先建立的线程池中调取一个线程来处理最早发起的所述请求,其它请求等待所述线程运行完成,将所述线程转换后的文件作为所述请求的响应。

当接受到一个客户端或多个客户端发起的用于请求对多个指定文件进行格式转换的多个不同的请求时,需要根据所述多个指定文件的个数来调取相应的多个线程。例如,当一个或多个用户对五个不同的文件发起格式转换的请求时,需要从线程池中调取五个线程,来对所述五个不同的文件分别进行格式转换。所述多个请求可以是同时发出的,也可以是不同时间发出的,都在本发明的保护范围内。所述多个请求是同时发出的,意味着,同时接收到所述多个请求。当同时接收到用于请求对多个指定文件进行格式转换的多个不同的请求时,则随机调取多个线程,采用独立的线程对各个文件分别进行格式转换。当不同时间接收到用于请求对多个指定文件进行格式转换的多个不同的请求时,则根据所述请求的顺序随机从线程池中调取线程。

通过采用线程池技术,可以实现同时对多个文件进行格式转换的过程,不需要排队等线程,可以减小在线加载文件的时间,节省在线预览的时间,进而提高处理效率;同时,能够解决在线预览文件时的并发状况,可以使用户同时在线预览多个文件。

步骤S103:利用所述线程调用转换组件。

在本步骤之前,需要对指定文件的原始格式进行识别,跟之前对指定文件的信息进行识别的方法相同,通过所述指定文件的头信息和/或后缀名来识别所述指定文件的原始格式。然后,根据所述指定文件的原始格式和目标格式来选择转换组件。所述目标格式可以是用户自己选择的,也可以是服务器或智能终端默认的。所述转换组件是可以将所述原始格式的文件转换成目标格式的文件的组件。例如,PDFCreator组件、OpenOffice组件等。

步骤S104:利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件。

在本步骤中,所述线程利用所述转换组件对所述指定文件进行格式转换,并获得转换后的文件。在本步骤之后,还可以包括:判断是否还有针对所述指定文件的其它请求;若没有,则将所述转换后的文件存储到缓存中;若有,则根据所述其它请求处理所述指定文件,将根据所述其它请求处理过的文件作为所述请求的响应。所述其它请求包括:所述转换后的文件预览效果不好,需要重新转换;用户还需要将文件转换成其它格式;用户只需要预览文件中的某一部分等。当没有对指定文件的其它请求时,将所述转换后的文件存储到缓存中,并释放进程。

其中,所述缓存包括:服务器缓存和/或前端播放器缓存,用户可以根据需要选择下载转换后的文件,同时,用户也可以下载转换前的指定文件,都在本发明的保护范围内。这样,可以尽量满足用户的需求,能够提高用户体验。

在转换后,转换后的文件还可以存储到使用本发明的服务器或智能终端的缓存中。所述服务器或智能终端还可以存储转换前的指定文件。在步骤S102之前,还可以包括:在缓存中查找是否已有对所述指定文件进行转换后的文件;若有,则从所述缓存中调用所述转换后的文件作为所述请求的响应。在接收到用于请求对指定文件进行格式转换的请求时,通过识别所述指定文件,然后,在所述缓存中查找是否已有对所述指定文件进行转换后的文件,若没有,则根据所述请求从预先建立的线程池中调取一个线程,然后执行后面的步骤;若有,则直接从所述缓存中调用所述转换后的文件作为所述请求的响应。在经过格式转换后,文件头的部分信息是不变的,可以通过文件头信息来查找是否已有对所述指定文件进行转换后的文件。通过这种方法,可以避免对同一个文件的多次重复转换,避免资源的浪费,能够节省资源和时间。

所述在缓存中查找是否已有对所述指定文件进行转换后的文件和所述在线程池中运行的线程中查找是否已有针对所述指定文件进行格式转换的线程,可以同时进行,也可以独立进行,互不影响,也可以相互结合来判断是否执行后面的步骤,这都在本发明的保护范围内。例如,在线程中没有查找到对指定文件进行格式转换的线程,在缓存中也没有查找到相应的转换后的文件,这时,就可以从预先建立的线程池中调取一个线程,然后执行后面的步骤。

步骤S105:将所述转换后的文件作为所述请求的响应,使用户可以在线预览所述转换后的文件。

在本步骤中,将所述转换后的文件发送给相应的用户,使用户可以直接在线预览所述转换后的文件。

通过这种方法可以直观、快捷的展现文件的内容,使用户直接就可以在线预览文件,避免用户下载文件,然后再利用软件打开文件,可以节省时间和资源;同时,方便用户选择性地下载文件,避免下载无用的文件,有利于提升工作效率,可以提高用户黏性。

在上述的第一实施例中,提供了一种基于多线程的文件格式在线转换方法,与之相对应的,本发明还提供一种基于多线程的文件格式在线转换系统。请参考图2,其为本发明第二实施例提供的一种基于多线程的文件格式在线转换系统的示意图。由于系统实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的系统实施例仅仅是示意性的。

本发明第二实施例提供的一种基于多线程的文件格式在线转换系统,包括:

请求接收模块101,用于接收用于请求对指定文件进行格式转换的请求;

线程调取模块102,用于根据所述请求从预先建立的线程池中调取一个线程;

转换组件调用模块103,用于利用所述线程调用转换组件;

格式转换模块104,用于利用所述线程和所述转换组件对所述指定文件进行格式转换,获得转换后的文件;

响应模块105,用于将所述转换后的文件作为所述请求的响应,使用户可以在线预览所述转换后的文件。

在本发明提供的一个实施例中,所述基于多线程的文件格式在线转换系统,还包括:

线程池创建模块,用于创建具有初始容量的线程池,所述线程池中包括多个可独立进行文件格式转换的线程。

在本发明提供的一个实施例中,所述基于多线程的文件格式在线转换系统,还包括:

线程查找模块,用于在线程池中运行的线程中查找是否已有针对所述指定文件进行格式转换的线程;

若有,则等待所述线程运行完成,将所述线程转换后的文件作为所述请求的响应。

在本发明提供的一个实施例中,所述基于多线程的文件格式在线转换系统,还包括:

其它请求判断模块,用于判断是否还有针对所述指定文件的其它请求;

若没有,则将所述转换后的文件存储到缓存中;

若有,则根据所述其它请求处理所述指定文件;所述将所述转换后的文件作为所述请求的响应,包括:将根据所述其它请求处理过的文件作为所述请求的响应。

在本发明提供的一个实施例中,所述缓存包括:服务器缓存和/或前端播放器缓存。

在本发明提供的一个实施例中,所述基于多线程的文件格式在线转换系统,还包括:

缓存查找模块,用于在缓存中查找是否已有对所述指定文件进行转换后的文件;

若有,则从所述缓存中调用所述转换后的文件作为所述请求的响应。

在本发明提供的一个实施例中,所述请求接收模块101,包括:

多个相同请求接收单元,用于接收多个客户端同时发起的用于请求对指定文件进行格式转换的多个相同的请求。

本发明提供的一种基于多线程的文件格式在线转换系统与上述基于多线程的文件格式在线转换方法出于相同的发明构思,具有相同的有益效果,此处不再赘述。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“例如”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。需要说明的是,本发明附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机机器(可以是个人计算机,服务器,或者网络机器等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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