多线程发送资料系统及方法技术方案

技术编号:2860141 阅读:150 留言:0更新日期:2012-04-11 18:40
一种多线程发送数据系统及方法。该多线程发送数据方法包括如下步骤:一本地应用服务器执行一主应用程序,该主应用程序从一本地数据库每读取一笔数据立即启动一个线程,然后读取下一笔数据重新启动一个新的线程。某一个线程(称谓本次线程)启动后,立即启动超文本传输协议(HTTP)传输本次数据至一远程数据库服务器,获取从远程数据库服务器返回的本次数据传输状态,并等待上次线程发出的名称为上次数据文件名的信息。本次线程接收到该信息后就将本次数据传输状态更新到本地数据库中,并发出名称为本次数据文件名的信息通知下一个线程。实施本发明专利技术,其只需执行一次主应用程序即可启动多个线程同时发送数据,从而缩短发送大量数据的时间。

【技术实现步骤摘要】

本专利技术是关于一种发送数据的系统及方法,特别是关于一种采用多线程机制来发送数据的系统及方法。先前技术当今一些高端服务器一般采用多个处理器并用的方式,但也有一些操作系统采用多线程机制来提高系统的性能。所述的线程是指一个用于能够完成特定功能的子应用程序。所述的多线程是与单个线程相比较而言的,是指一个服务器可以同时处理多个应用程序的线程或一个应用程序的多个线程。以往的操作系统采用单线程的程序结构,其作业原理是主应用程序有一个信息循环,不断从信息队列中读取信息来决定下一步所需完成的任务,该信息循环一般是由一个子函数来完成的,主应用程序只有等待该子函数执行完返回后才能接收另外的信息来执行。比如子函数功能是在读取一网络数据,主应用程序只有等待读取完这笔数据才能接收下一个信息。在执行该子函数过程中系统需要等待一段时间,特别是读取网络数据和等待用户输入时,系统有较多时间处于等待状态。尽管有些操作系统有并发作业功能,其实是利用了操作系统中处理器的分时技术,而没有真正应用到这种多线程机制。然而在当今WINDOWS系统中,每一个程序可以同时执行多个线程,这意味着一个程序可以同时完成多个任务。特别是在网络系统中,很多功能是可并发执行,使用多线程机制是最佳选择。例如网络传输数据的速度以及用户输入速度较慢,可以采用多个独立的线程去完成数据的传输,而不影响其它功能。由于数据通过超文本传输协议(Hypertext Transfer Protocol,HTTP)进行发送和接收回复,再加上数据证书加密等额外负担,所以对INTERNET带宽的要求必须大余200Kbps。但是通用INTERNET带宽一般仅有10Kbps至50Kbps,因此采用一笔一笔发送数据的方式无法满足发送大量数据的时间要求。关于多线程处理数据的支持技术曾揭露于1999年12月14日公告的美国专利第6,003,066号,其为“多个处理数据工作站的间的多线程分配系统(System for Distributing a Plurality of ThreadsAssociated with a Process Initiating by One Data Processing StationAmong Data Processing Stations)”。该专利揭露了在计算机网络系统中一服务器分配多个线程处理多个工作站之间的数据,该多个线程之间采用数据标记在处理数据时进行跟踪与记录。然而其不足之处在于该专利技术由于多个工作站需要多次执行处理数据的主应用程序,而每次执行主应用程序需要额外时间,因此在处理大量数据时需要较长时间,从而无法满足高性能系统处理数据的时间要求。为克服上述先前技术的不足,须提供一种采用多线程机制来发送数据的系统及方法。其只需执行一次主应用程序即可启动多个线程同时进行数据发送,来缩短发送大量数据的时间,提高数据发送系统的效率。
技术实现思路
针对先前技术存在的不足,本专利技术的主要目的在于提供一种多线程发送数据系统及方法,其可用于发送大量数据时主应用程序只需启动一次,就能循环读取多笔数据从而启动多个线程,并采用多个数据通道同时传输的方式传输数据。所述的多个数据通道的传输方式是指同时启动多个线程并行传输多笔数据的传输方式。本专利技术的另一目的在于提供多线程发送数据系统及方法,其可用于在多线程进行数据传输时进行跟踪与记录,以及多线程间采用信息通知机制来发送数据。为达成上述专利技术目的,本专利技术提供一种多线程发送数据系统。该多线程发送数据系统包括一本地应用服务器、一本地数据库、一远程数据库服务器、一连接及网络。其中,本地应用服务器包括一数据读取模块用于读取数据及其对应的文件名;一数据库更新模块用于在数据库中更新已发送数据的标记,所述的数据标记用于记录每笔数据是否已发送,若该笔数据已发送,则该笔数据标记记为“1”,若该笔数据没有发送,则该笔数据标记记为“0”;以及一线程运行模块用于每读取一笔数据即启动一个线程发送数据,对每个线程中的数据传输状态进行跟踪和记录,以及对多个线程访问数据库时需建立的连接进行排队等待。该线程运行模块还包括一线程启动子模块、一线程跟踪子模块、一线程排队子模块及一线程通知子模块。本地数据库用于储存多笔数据以及每笔数据对应的文件名和每笔数据对应的标记。远程数据库服务器用于接收由本地应用服务器发送过来的数据及其对应的文件名,并返回每一笔数据传输状态至本地应用服务器。本专利技术还提供一种多线程发送数据方法,该方法包括如下步骤(a)本地应用服务器启动一主应用程序,所述的主应用程序是指运行于本地应用服务器中可程序化的应用程序;(b)数据读取模块从本地数据库中读取一笔需发送的数据及其文件名,该笔数据及其文件名称谓本次数据;(c)主应用程序为读取的本次数据启动一个新的线程,该线程称谓本次线程,并将读取的本次数据及其文件名和上次数据文件名提交给本次线程;(d)本次线程将已读取的本次数据及其文件名置于发送状态;(e)数据库更新模块于本地数据库中更新已发送数据的标记;(f)主应用程序连续读取多笔数据,并为读取的每一笔数据分别启动一个新的线程;(g)本次线程启动HTTP将本次数据及其文件名传输至远程数据库服务器;(h)在各个线程传输数据时进行跟踪与记录,并在多个线程之间采用信息通知其它线程访问本地数据库;(i)主应用程序判断需发送的数据是否发送完毕。其中所述的在各个线程传输数据时进行跟踪与记录,并在多个线程之间采用信息通知其它线程访问本地数据库的步骤(h)还包括步骤(a1)本次线程启动HTTP,通过网络将已提交给本次线程的本次数据及其文件名传输至远程数据库服务器;(b1)远程数据库服务器接收到本次数据及其文件名后,返回以本次数据文件名作为数据传输状态至本地应用服务器;(c1)线程跟踪子模块接收该返回的数据传输状态;(d1)线程排队子模块等待上次线程发出的名称为上次数据文件名的信息;(e1)线程通知子模块判断是否接收到该信息,若没有接收到该信息,则线程排队子模块继续等待该信息;若成功接收到该信息,则将上述返回的数据传输状态记录于本地数据库中;(f1)线程通知子模块发出名称为本次数据文件名的信息通知下一个排队等待需连接本地数据库的线程访问本地数据库。通过实施本专利技术,只需执行一次主应用程序即可启动多个线程同时进行数据发送,从而缩短数据的发送时间达到满足发送大量数据的时间要求;且每一线程中数据传输状态可以跟踪和记录,因此系统不会因太多的数据库连接而导致系统性能下降以至停机。图式简要说明附图说明图1是本专利技术多线程发送数据系统的硬件架构图。图2是本专利技术多线程发送数据系统的本地应用服务器的软件功能模块图。图3是本专利技术多线程发送数据系统的多线程运行机制示意图。图4是本专利技术多线程发送数据方法的主应用程序作业流程图。图5是本专利技术多线程发送数据方法的各个线程传输数据的作业流程图。具体实施方式如图1所示,是本专利技术多线程发送数据系统的硬件架构图。该多线程发送数据系统包括一本地应用服务器1、一本地数据库2、一远程数据库服务器3、一连接4及网络5。本地应用服务器1通过连接4与本地数据库2相连接,且通过网络5与远程数据库服务器3相连接。该本地应用服务器1用于启动发送数据所需的主应用程序及多个线程(Thre本文档来自技高网
...

【技术保护点】
一种多线程发送数据系统,其可进行数据发送,该多线程发送数据系统包括一本地应用服务器、一本地数据库及一远程数据库服务器,其特征在于:一本地应用服务器,用于执行一主应用程序就可以启动多个线程进行数据发送,该本地应用服务器包括:一 数据读取模块,用于从本地数据库中读取数据及其对应的文件名;一线程运行模块,用于为每读取一笔数据即启动一个线程,采用多个数据通道同时传输的方式传输数据,并对每个线程中数据传输状态进行跟踪和记录,以及对需要访问本地数据库时建立连接的线程 进行排队,并将本次发送的数据文件名作为信息通知下一个排队等待需访问本地数据库的线程;以及一数据库更新模块,用于在本地数据库中更新已向远程数据库服务器发送数据的数据标记;一本地数据库,用于储存多笔数据及其对应的文件名以及数据标 记;一远程数据库服务器用于接收从本地应用服务器发送过来的数据及其对应的文件名,并返回该数据的文件名作为数据传输状态至本地应用服务器。

【技术特征摘要】

【专利技术属性】
技术研发人员:王建东
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1