一种流数据的并发传输方法和装置与流程

文档序号:12494806阅读:223来源:国知局
一种流数据的并发传输方法和装置与流程

本发明涉及流数据传输技术领域,具体涉及一种流数据的并发传输方法以及一种流数据的并发传输装置。



背景技术:

流数据为可以采用流式传输的方式在网络上传输的数据,大型网站系统经常依赖于内容分发网络(Content Delivery Network,CDN)对流数据进行传输,内容分发网络是通过在现有的网络中增加一层新的网络结构,使用户可以将数据传输到就近的节点上或从就近的节点获取所需的数据。在内容分发网络中,部署有传输节点,用于缓冲流数据,就近给用户提供服务。

在内容分发网络中的传输节点上,如果对于同一流数据存在多个连接,通常为每个连接随机分配一个线程,让其建立连接进行流数据的传输,以此来实现并发传输流数据。

然而在多个连接的情况下,接收流数据的线程就需要将流数据转发到多个连接所在的线程,线程间通信性能消耗大,且响应时间增长。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种流数据的并发传输方法和相应的装置。

依据本发明的一个方面,提供了一种流数据的并发传输方法,包括:

分配第一类线程接收流数据,每个第一类线程对应接收一个流数据;

接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务;

创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,各传输通道对应承载一个传输任务;

调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

可选地,在所述接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务之前,所述方法还包括:

调用第二类线程用于接收针对所有流数据的传输请求。

可选地,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

调用所述第二类线程将多个传输任务发送至所述第一类线程,所述传输任务携带对应的传输目的端的标识。

可选地,在所述调用所述第二类线程将多个传输任务发送至所述第一类线程之前,所述方法还包括:

识别各个传输请求对应请求的流数据为目标流数据,并确定接收所述目标流数据的线程为第一类线程。

可选地,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

判断用于发送所述目标流数据的线程是否仅包括第一类线程。

可选地,若用于发送所述目标流数据的线程仅包括第一类线程,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

判定所述第一类线程满足第一设定条件,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

可选地,所述方法还包括:

若所述第一类线程不满足第一设定条件,则创建第三类线程进行目标流数据的传输。

可选地,所述创建第三类线程进行目标流数据的传输包括:

从预置线程池中随机选取一个线程作为第三类线程;

调用所述第三类线程从接收目标流数据的第一类线程获取目标流数据,并对目标流数据进行传输。

可选地,若用于发送所述目标流数据的线程包括第一类线程和至少一个第三类线程,则在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

在所述第一类线程和至少一个第三类线程中,选取满足第一设定条件的线程,并确定满足第一设定条件的线程为第一类线程,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

可选地,所述方法还包括:

若确定满足第一设定条件的线程并非第一类线程,则调用满足第一设定条件的第三类线程进行目标流数据的传输。

可选地,所述方法还包括:

若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并确定随机选取的线程为第一类线程。

可选地,所述方法还包括:

若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则进一步确定满足第二设定条件的线程为第一类线程,所述第二设定条件包括如下至少一种:对应创建的传输通道的总个数最少、对应负载量最少。

可选地,所述方法还包括:

若所述第一类线程不满足第二设定条件,则调用满足第二设定条件的第三类线程进行目标流数据的传输。

可选地,所述方法还包括:

若已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程。

可选地,在所述创建所述第一类线程分别与各个传输目的端之间的传输通道之后,所述方法还包括:

根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数。

可选地,所述分配第一类线程接收流数据包括:

针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收。

根据本发明的另一方面,提供了一种流数据的并发传输装置,包括:

线程分配模块,用于分配第一类线程接收流数据,每个第一类线程对应接收一个流数据;

传输任务确定模块,用于接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务;

传输通道创建模块,用于创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,各传输通道对应承载一个传输任务;

传输任务调用模块,用于调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

可选地,所述装置还包括:

传输请求接收模块,用于在所述接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务之前,调用第二类线程用于接收针对所有流数据的传输请求。

可选地,所述装置还包括:

传输任务发送模块,用于在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,调用所述第二类线程将多个传输任务发送至所述第一类线程,所述传输任务携带对应的传输目的端的标识。

可选地,所述装置还包括:

流数据识别模块,用于在所述调用所述第二类线程将多个传输任务发送至所述第一类线程之前,识别各个传输请求对应请求的流数据为目标流数据,并确定接收所述目标流数据的线程为第一类线程。

可选地,所述装置还包括:

线程判断模块,用于在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,判断用于发送所述目标流数据的线程是否仅包括第一类线程。

可选地,所述装置还包括:

第一条件判定模块,用于若用于发送所述目标流数据的线程仅包括第一类线程,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,判定所述第一类线程满足第一设定条件,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

可选地,所述装置还包括:

第三线程创建模块,用于若所述第一类线程不满足第一设定条件,则创建第三类线程进行目标流数据的传输。

可选地,所述第三线程创建模块包括:

第三线程选取子模块,用于从预置线程池中随机选取一个线程作为第三类线程;

流数据获取子模块,用于调用所述第三类线程从接收目标流数据的第一类线程获取目标流数据,并对目标流数据进行传输。

可选地,所述装置还包括:

第一条件满足模块,用于若用于发送所述目标流数据的线程包括第一类线程和至少一个第三类线程,则在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,在所述第一类线程和至少一个第三类线程中,选取满足第一设定条件的线程,并确定满足第一设定条件的线程为第一类线程,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

可选地,所述装置还包括:

第三线程调用模块,用于若确定满足第一设定条件的线程并非第一类线程,则调用满足第一设定条件的第三类线程进行目标流数据的传输。

可选地,所述装置还包括:

线程随机模块,用于若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并确定随机选取的线程为第一类线程。

可选地,所述装置还包括:

第二条件满足模块,用于若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则进一步确定满足第二设定条件的线程为第一类线程,所述第二设定条件包括如下至少一种:对应创建的传输通道的总个数最少、对应负载量最少。

可选地,所述装置还包括:

第三线程调用模块,用于若所述第一类线程不满足第二设定条件,则调用满足第二设定条件的第三类线程进行目标流数据的传输。

可选地,所述装置还包括:

第三创建模块,用于若已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程。

可选地,所述装置还包括:

个数更新模块,用于在所述创建所述第一类线程分别与各个传输目的端之间的传输通道之后,根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数。

可选地,所述线程分配模块,具体用于针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收。

根据本发明的一种流数据的并发传输方法和装置通过分配第一类线程接收流数据,接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务,创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。使得将流数据传输至传输目的端直接是在接收流数据的线程上完成,避免了接收流数据的线程要向多个发送流数据的线程转发流数据的问题,减少了线程间转发数据带来的性能消耗,同时也减少了响应时间。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一的一种流数据的并发传输方法的步骤流程图示意图;

图2示出了根据本发明实施例二的一种流数据的并发传输方法的步骤流程图示意图;

图3示出了根据本发明实施例三的一种流数据的并发传输装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

参见图1,示出了根据本发明实施例一的一种流数据的并发传输方法的步骤流程图示意图,具体可以包括如下步骤:

步骤101,分配第一类线程接收流数据。

流数据为可以采用流式传输的方式在网络上传输的数据,流数据可以在客户端或服务器等网络设备间传输。在多线程环境下,需要分配相同或不同线程来处理流数据的接收、发送、存储等任务,来实现多个线程并发执行的技术。

在本发明实施例中,线程根据执行的不同任务被分为几类,其中,在线程池中分配线程来执行接收流数据的任务,将这种执行接收流数据任务的线程称为第一类线程,并且每个第一类线程对应接收一个流数据。

例如,在视频直播领域,利用内容分发网络来提供高性能、可扩展性及低成本的网络内容传递给用户。在内容分发网络中的用于传输流数据的服务器上,可以同时有多个接收流数据的任务,当有流数据接收请求被响应,分配一个第一类线程用于接收流数据,具体可以是在分配的第一类线程上执行与流数据发送端建立连接,并接收传输来的流数据。

步骤102,接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务。

传输请求为对目标流数据发起的传输请求,传输请求具体包括目标流数据、传输目的端、传输方式等信息,其中目标流数据为被请求传输的流数据,一个传输请求可以请求至少一个目标流数据,传输目的端为传输请求中指定的接收流数据的一端。传输任务为与传输目的端建立连接传输目标流数据的任务。

在本发明实施例中,接收到针对目标流数据的多个传输请求是指针对一个流数据有多个传输请求的情况,具体可以在随机的一个线程上接收传输请求,当接收到多个传输请求时,根据传输请求中的信息,确定各个传输请求对应的传输目的端,并且创建各传输请求对应的各传输任务。

步骤103,创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道。

传输通道是指本地与传输目的端之间建立的用于执行传输数据的通道,具体可以用于字节缓冲区和为了通道另一边的数据实体执行传输数据。在本发明实施例中,传输通道可以是指Socket(Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,也称“套接字”)连接,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。

在本发明实施例中,查找到正在接收传输任务的目标流数据的第一类线程,根据传输任务创建该第一类线程与各传输目的端之间的传输通道,各传输通道对应承载一个传输任务。

步骤104,调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

在本发明实施例中,第一类线程上可以并发执行多个传输任务,其中每个传输任务对应将目标流数据通过创建的传输通道传输至各个传输目的端。在一定的硬件条件下,第一类线程上可以并发执行的传输任务的个数的最大值取决于传输任务消耗的CPU资源,具体可以为任意适用的个数,本发明对此不作限制。

综上所述,依据本发明实施例,通过分配第一类线程接收流数据,接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务,创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。使得将流数据传输至传输目的端直接是在接收流数据的线程上完成,避免了接收流数据的线程要向多个发送流数据的线程转发流数据的问题,减少了线程间转发数据带来的性能消耗,同时也减少了响应时间。

在本发明实施例中,优选地,在所述接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务之前,还可以包括步骤:调用第二类线程用于接收针对所有流数据的传输请求。

从线程池中调用线程,来接收针对所有流数据的传输请求,该线程可以称为第二类线程。具体可以为各个流数据的各个传输请求分别调用不同的线程来执行,本发明实施例对此不作限制。

在本发明实施例中,优选地,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,还可以包括步骤:调用所述第二类线程将多个传输任务发送至所述第一类线程,所述传输任务携带对应的传输目的端的标识。

第二类线程接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务,然后将多个传输任务发送至传输任务对应的目标流数据的第一类线程,并且传输任务携带有对应的传输目的端的标识,例如传输目的端为服务器,标识可以包括服务器的网络地址。

在本发明实施例中,优选地,在所述调用所述第二类线程将多个传输任务发送至所述第一类线程之前,还可以包括步骤:识别各个传输请求对应请求的流数据为目标流数据,并确定接收所述目标流数据的线程为第一类线程。

传输请求携带有请求的目标流数据的标识,接收到各传输请求后,识别各传输请求对应请求的流数据,识别到流数据为目标流数据,并查找到接收目标流数据的线程,确定为第一类线程。

参见图2,示出了根据本发明实施例二的一种流数据的并发传输方法的步骤流程图示意图,具体可以包括如下步骤:

步骤201,针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收。

线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池中将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池中将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。

在本发明实施例中,预置线程池为预先设置的用于处理流数据相关任务的线程池。从预置线程池中随机选取一个线程,用来接收待接收的流数据,作为第一类线程。

步骤202,调用第二类线程用于接收针对所有流数据的传输请求。

从线程池中调用线程,来接收针对所有流数据的传输请求,该线程可以称为第二类线程。具体可以为各个流数据的各个传输请求分别调用不同的线程来执行,本发明实施例对此不作限制。

步骤203,接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务。

在本发明实施例中,具体方式与其他实施例中描述一致,此处不做赘述。

步骤204,判断用于发送所述目标流数据的线程是否仅包括第一类线程。

在本发明实施例中,发送目标流数据的线程可以有多个,其中一个为第一类线程,其他发送目标流数据的线程可以是在第一类线程达到并发上限时,创建新的线程用于执行目标流数据的传输任务,在创建后将第一类线程中接收的流数据转发到新创建的线程上。判断当前用于发送目标流数据的线程是否仅包括第一类线程。

若用于发送所述目标流数据的线程仅包括第一类线程,则执行步骤205。

步骤205,判定所述第一类线程满足第一设定条件。

第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。获取在第一类线程上创建的传输通道的总个数,第一设定条件为总个数未超出设定个数、或者未超出设定负载量。

在本发明实施例中,获取目标流数据的第一类线程上创建的传输通道的总个数,根据总个数是否超出设定个数、或者超出设定负载量,判断第一类线程是否满足第一设定条件,且判定第一类线程满足第一设定条件。设定个数和设定负载量可以为任意适用的,本发明实施例对此不作限定。

在本发明实施例中,优选地,若所述第一类线程不满足第一设定条件,则创建第三类线程进行目标流数据的传输。

如果第一类线程不满足第一设定条件,也就是第一类线程上的传输通道的总个数超出设定个数或设定负载量,则创建线程来用于目标流数据的传输,创建的线程为第三类线程,创建第三类线程需要第一类线程将流数据转发到第三类线程上。

在本发明实施例中,优选地,所述创建第三类线程进行目标流数据的传输的一种实现方式为:从预置线程池中随机选取一个线程作为第三类线程;调用所述第三类线程从接收目标流数据的第一类线程获取目标流数据,并对目标流数据进行传输。

从预置线程池中随机选取一个线程作为第三类线程,调用第三类线程从第一类线程获取所需的目标流数据,并将目标流数据根据传输任务进行传输。

在本发明实施例中,优选地,若用于发送所述目标流数据的线程包括第一类线程和至少一个第三类线程,则在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,还可以包括步骤:在所述第一类线程和至少一个第三类线程中,选取满足第一设定条件的线程,并确定满足第一设定条件的线程为第一类线程,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

如果用于发送目标流数据的线程包括第一类线程和至少一个第三类线程,在第一类线程和第三类线程中查找出满足第一设定条件的线程,第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。获取在第一类线程和第三类线程上分别创建的传输通道的总个数,第一设定条件为总个数未超出设定个数、或者未超出设定负载量。并且确定满足第一设定条件的线程为第一类线程,第三类线程都不满足第一设定条件。

在本发明实施例中,优选地,若确定满足第一设定条件的线程并非第一类线程,则调用满足第一设定条件的第三类线程进行目标流数据的传输。

具体而言,如果满足第一设定条件的线程不是第一类线程,那么就调用第三类线程进行目标流数据的传输,具体将传输任务发送到第三类线程上,在第三类线程上建立与传输目的端的连接,进行流数据的传输。

在本发明实施例中,优选地,若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并确定随机选取的线程为第一类线程。

如果满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并且在一种情况下,随机选的线程为第一类线程,则用第一类线程来进行目标流数据的传输。

在本发明实施例中,优选地,若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则进一步确定满足第二设定条件的线程为第一类线程,所述第二设定条件包括如下至少一种:对应创建的传输通道的总个数最少、对应负载量最少。

第二设定条件为对应创建的传输通道的总个数最少、或者对应负载量最少。

若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,还可以查找其中满足第二设定条件的线程,并且在一种情况下,满足第二设定条件的线程为第一类线程,则用第一类线程来进行目标流数据的传输。

在本发明实施例中,优选地,若所述第一类线程不满足第二设定条件,则调用满足第二设定条件的第三类线程进行目标流数据的传输。

如果第一类线程不满足第二设定条件,则查找到满足第二设定条件的第三类线程来进行目标流数据的传输,又满足第二设定条件的第三类线程与传输目的端建立连接,进行目标流数据的传输。

在本发明实施例中,优选地,若已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程。

如果已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程,将目标流数据又第一类线程转发到新创建的第三类线程上,将传输任务发送到新创建的第三类线程上,来根据传输任务完成目标流数据的传输。

步骤206,创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道。

在本发明实施例中,各传输通道对应承载一个传输任务。具体方式与其他实施例中描述一致,此处不做赘述。

步骤207,根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数。

在本发明实施例中,根据建立的传输通道的个数,更新针对第一类线程记录的传输通道总个数,具体可以是每有一个传输通道建立,就对第一类线程记录的传输通道总个数增加一。如果有传输任务完成或其他原因导致传输通道减少,则相应减少第一类线程记录的传输通道总个数。

步骤208,调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

在本发明实施例中,具体方式与其他实施例中描述一致,此处不做赘述。

综上所述,依据本发明实施例,通过针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收,调用第二类线程用于接收针对所有流数据的传输请求,接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务,判断用于发送所述目标流数据的线程是否仅包括第一类线程,判定所述第一类线程满足第一设定条件,创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数,调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。上述方案使得将流数据传输至传输目的端直接在接收流数据的线程上完成,避免了接收流数据的线程要向多个发送流数据的线程转发流数据的问题,减少了线程间转发数据带来的性能消耗,同时也减少了响应时间。

参照图3,示出了根据本发明实施例三的一种流数据的并发传输装置的结构框图,具体可以包括如下模块:

线程分配模块301,用于分配第一类线程接收流数据,每个第一类线程对应接收一个流数据;

传输任务确定模块302,用于接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务;

传输通道创建模块303,用于创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,各传输通道对应承载一个传输任务;

传输任务调用模块304,用于调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

在本发明实施例中,优选地,所述装置还包括:

传输请求接收模块,用于在所述接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务之前,调用第二类线程用于接收针对所有流数据的传输请求。

在本发明实施例中,优选地,所述装置还包括:

传输任务发送模块,用于在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,调用所述第二类线程将多个传输任务发送至所述第一类线程,所述传输任务携带对应的传输目的端的标识。

在本发明实施例中,优选地,所述装置还包括:

流数据识别模块,用于在所述调用所述第二类线程将多个传输任务发送至所述第一类线程之前,识别各个传输请求对应请求的流数据为目标流数据,并确定接收所述目标流数据的线程为第一类线程。

在本发明实施例中,优选地,所述装置还包括:

线程判断模块,用于在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,判断用于发送所述目标流数据的线程是否仅包括第一类线程。

在本发明实施例中,优选地,所述装置还包括:

第一条件判定模块,用于若用于发送所述目标流数据的线程仅包括第一类线程,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,判定所述第一类线程满足第一设定条件,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

在本发明实施例中,优选地,所述装置还包括:

第三线程创建模块,用于若所述第一类线程不满足第一设定条件,则创建第三类线程进行目标流数据的传输。

在本发明实施例中,优选地,所述第三线程创建模块包括:

第三线程选取子模块,用于从预置线程池中随机选取一个线程作为第三类线程;

流数据获取子模块,用于调用所述第三类线程从接收目标流数据的第一类线程获取目标流数据,并对目标流数据进行传输。

在本发明实施例中,优选地,所述装置还包括:

第一条件满足模块,用于若用于发送所述目标流数据的线程包括第一类线程和至少一个第三类线程,则在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,在所述第一类线程和至少一个第三类线程中,选取满足第一设定条件的线程,并确定满足第一设定条件的线程为第一类线程,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

在本发明实施例中,优选地,所述装置还包括:

第三线程调用模块,用于若确定满足第一设定条件的线程并非第一类线程,则调用满足第一设定条件的第三类线程进行目标流数据的传输。

在本发明实施例中,优选地,所述装置还包括:

线程随机模块,用于若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并确定随机选取的线程为第一类线程。

在本发明实施例中,优选地,所述装置还包括:

第二条件满足模块,用于若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则进一步确定满足第二设定条件的线程为第一类线程,所述第二设定条件包括如下至少一种:对应创建的传输通道的总个数最少、对应负载量最少。

在本发明实施例中,优选地,所述装置还包括:

第三线程调用模块,用于若所述第一类线程不满足第二设定条件,则调用满足第二设定条件的第三类线程进行目标流数据的传输。

在本发明实施例中,优选地,所述装置还包括:

第三创建模块,用于若已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程。

在本发明实施例中,优选地,所述装置还包括:

个数更新模块,用于在所述创建所述第一类线程分别与各个传输目的端之间的传输通道之后,根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数。

在本发明实施例中,优选地,所述线程分配模块,具体用于针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收。

综上所述,依据本发明实施例,通过分配第一类线程接收流数据,接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务,创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。上述方案使得将流数据传输至传输目的端直接在接收流数据的线程上完成,避免了接收流数据的线程要向多个发送流数据的线程转发流数据的问题,减少了线程间转发数据带来的性能消耗,同时也减少了响应时间。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种流数据的并发传输方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明还公开了A1、一种流数据的并发传输方法,包括:

分配第一类线程接收流数据,每个第一类线程对应接收一个流数据;

接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务;

创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,各传输通道对应承载一个传输任务;

调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

A2、根据A1所述的方法,其中,在所述接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务之前,所述方法还包括:

调用第二类线程用于接收针对所有流数据的传输请求。

A3、根据A2所述的方法,其中,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

调用所述第二类线程将多个传输任务发送至所述第一类线程,所述传输任务携带对应的传输目的端的标识。

A4、根据A3所述的方法,其中,在所述调用所述第二类线程将多个传输任务发送至所述第一类线程之前,所述方法还包括:

识别各个传输请求对应请求的流数据为目标流数据,并确定接收所述目标流数据的线程为第一类线程。

A5、根据A1所述的方法,其中,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

判断用于发送所述目标流数据的线程是否仅包括第一类线程。

A6、根据A5所述的方法,其中,若用于发送所述目标流数据的线程仅包括第一类线程,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

判定所述第一类线程满足第一设定条件,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

A7、根据A6所述的方法,其中,所述方法还包括:

若所述第一类线程不满足第一设定条件,则创建第三类线程进行目标流数据的传输。

A8、根据A7所述的方法,其中,所述创建第三类线程进行目标流数据的传输包括:

从预置线程池中随机选取一个线程作为第三类线程;

调用所述第三类线程从接收目标流数据的第一类线程获取目标流数据,并对目标流数据进行传输。

A9、根据A5所述的方法,其中,若用于发送所述目标流数据的线程包括第一类线程和至少一个第三类线程,则在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,所述方法还包括:

在所述第一类线程和至少一个第三类线程中,选取满足第一设定条件的线程,并确定满足第一设定条件的线程为第一类线程,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

A10、根据A9所述的方法,其中,所述方法还包括:

若确定满足第一设定条件的线程并非第一类线程,则调用满足第一设定条件的第三类线程进行目标流数据的传输。

A11、根据A9所述的方法,其中,所述方法还包括:

若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并确定随机选取的线程为第一类线程。

A12、根据A9所述的方法,其中,所述方法还包括:

若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则进一步确定满足第二设定条件的线程为第一类线程,所述第二设定条件包括如下至少一种:对应创建的传输通道的总个数最少、对应负载量最少。

A13、根据A12所述的方法,其中,所述方法还包括:

若所述第一类线程不满足第二设定条件,则调用满足第二设定条件的第三类线程进行目标流数据的传输。

A14、根据A7所述的方法,其中,所述方法还包括:

若已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程。

A15、根据A1或6所述的方法,其中,在所述创建所述第一类线程分别与各个传输目的端之间的传输通道之后,所述方法还包括:

根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数。

A16、根据A1所述的方法,其中,所述分配第一类线程接收流数据包括:

针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收。

本发明还公开了B17、一种流数据的并发传输装置,包括:

线程分配模块,用于分配第一类线程接收流数据,每个第一类线程对应接收一个流数据;

传输任务确定模块,用于接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务;

传输通道创建模块,用于创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道,各传输通道对应承载一个传输任务;

传输任务调用模块,用于调用所述第一类线程并发执行多个传输任务,将所述目标流数据通过对应的传输通道传输至各个传输目的端。

B18、根据B17所述的装置,其中,所述装置还包括:

传输请求接收模块,用于在所述接收到针对目标流数据的多个传输请求时,确定各传输请求对应的传输目的端并创建对应的传输任务之前,调用第二类线程用于接收针对所有流数据的传输请求。

B19、根据B18所述的装置,其中,所述装置还包括:

传输任务发送模块,用于在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,调用所述第二类线程将多个传输任务发送至所述第一类线程,所述传输任务携带对应的传输目的端的标识。

B20、根据B19所述的装置,其中,所述装置还包括:

流数据识别模块,用于在所述调用所述第二类线程将多个传输任务发送至所述第一类线程之前,识别各个传输请求对应请求的流数据为目标流数据,并确定接收所述目标流数据的线程为第一类线程。

B21、根据B17所述的装置,其中,所述装置还包括:

线程判断模块,用于在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,判断用于发送所述目标流数据的线程是否仅包括第一类线程。

B22、根据B21所述的装置,其中,所述装置还包括:

第一条件判定模块,用于若用于发送所述目标流数据的线程仅包括第一类线程,在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,判定所述第一类线程满足第一设定条件,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

B23、根据B22所述的装置,其中,所述装置还包括:

第三线程创建模块,用于若所述第一类线程不满足第一设定条件,则创建第三类线程进行目标流数据的传输。

B24、根据B求23所述的装置,其中,所述第三线程创建模块包括:

第三线程选取子模块,用于从预置线程池中随机选取一个线程作为第三类线程;

流数据获取子模块,用于调用所述第三类线程从接收目标流数据的第一类线程获取目标流数据,并对目标流数据进行传输。

B25、根据B21所述的装置,其中,所述装置还包括:

第一条件满足模块,用于若用于发送所述目标流数据的线程包括第一类线程和至少一个第三类线程,则在所述创建接收所述目标流数据的第一类线程与各个传输目的端之间的传输通道之前,在所述第一类线程和至少一个第三类线程中,选取满足第一设定条件的线程,并确定满足第一设定条件的线程为第一类线程,所述第一设定条件包括如下至少一种:对应创建的传输通道的总个数未超出设定个数、未超出设定负载量。

B26、根据B25所述的装置,其中,所述装置还包括:

第三线程调用模块,用于若确定满足第一设定条件的线程并非第一类线程,则调用满足第一设定条件的第三类线程进行目标流数据的传输。

B27、根据B25所述的装置,其中,所述装置还包括:

线程随机模块,用于若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则从第一类线程和至少一个第三类线程中随机选取一个线程,并确定随机选取的线程为第一类线程。

B28、根据B25所述的装置,其中,所述装置还包括:

第二条件满足模块,用于若满足第一设定条件的线程包括第一类线程和至少一个第三类线程,则进一步确定满足第二设定条件的线程为第一类线程,所述第二设定条件包括如下至少一种:对应创建的传输通道的总个数最少、对应负载量最少。

B29、根据B28所述的装置,其中,所述装置还包括:

第三线程调用模块,用于若所述第一类线程不满足第二设定条件,则调用满足第二设定条件的第三类线程进行目标流数据的传输。

B30、根据B23所述的装置,其中,所述装置还包括:

第三创建模块,用于若已有的第一类线程和第三类线程均不满足第一设定条件,则创建新的第三类线程。

B31、根据B17或22所述的装置,其中,所述装置还包括:

个数更新模块,用于在所述创建所述第一类线程分别与各个传输目的端之间的传输通道之后,根据所建立的传输通道的个数,更新针对所述第一类线程记录的传输通道总个数。

B32、根据B17所述的装置,其中,所述线程分配模块,具体用于针对待接收的流数据,从预置线程池随机选取一个线程作为第一类线程进行接收。

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