一种基于线程池的数据通讯的方法及系统技术方案

技术编号:17047413 阅读:30 留言:0更新日期:2018-01-17 17:37
本申请公开了一种基于线程池的数据通讯的方法,所述方法包括:创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据,若存在则接收所述待接收数据。该方法能够降低发送方和接收方由于等待另一方处理信息造成的计算和存储资源浪费,降低工作复杂度提升工作效率。本申请还公开了一种基于线程池的数据通讯的系统、一种计算机可读存储介质及一种服务器,具有以上有益效果。

A method and system for data communication based on thread pool

The invention discloses a method for data communication based on thread pool, the method includes: creating a data processing thread and the data processing are added to the thread in the thread pool; data processing threads to perform data processing operations using the obtained data to be sent, and the stored data to be sent to the public data transmission queue, so that the data sending thread will be sent to send data to the data receiver; whether to receive data using the data processing thread detection data receiving public queue, if there is to receive the received data. This method can reduce the computation and storage resources wasted by the sender and receiver due to waiting for the other party to process information, reduce work complexity and improve work efficiency. The application also discloses a data communication system based on thread pool, a computer readable storage medium and a server, which has the above beneficial effects.

【技术实现步骤摘要】
一种基于线程池的数据通讯的方法及系统
本专利技术涉及数据存储领域,特别涉及一种基于线程池的数据通讯的方法、系统、一种计算机可读存储介质和一种服务器。
技术介绍
在计算机应用程序工作过程中,经常出现多个程序协同工作的情况,比如程序A对数据加工之后通过网络发送给程序B,程序B继续对数据进行处理。通常将这种处理方式为同步处理方式。在这种方式下程序A何时发送数据对于程序B来说是未知的,因此当程序A处理完数据前程序B只能停下来等待程序A发送;同样当程序A需要向程序B发送数据,但是程序B未处理完成时,程序A也不得不停下来等待程序B接收。当数据量较大时通常采用多任务的方式提高数据处理速度,例如程序A1发送给程序B1,程序A2发送给程序B2。以上解决方式是一种线性的处理方式,即A1只发送给B1,B1也只处理A1发送来的数据。这样在A1和B1处理速度不一致的情况下总有一方处于等待状态,造成了资源的浪费,且随着任务对的增加资源浪费也越来越严重。因此,如何降低发送方和接收方由于等待另一方处理信息造成的计算和存储资源浪费,降低工作复杂度提升工作效率是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种基于线程池的数据通讯的方法、系统、一种计算机可读存储介质及一种服务器,能够降低发送方和接收方由于等待另一方处理信息造成的计算和存储资源浪费,降低工作复杂度提升工作效率。为解决上述技术问题,本申请提供一种基于线程池的数据通讯的方法,该方法包括:创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据,若存在则接收所述待接收数据。可选的,所述数据发送线程将所述待发送数据发送至数据接收方包括:利用所述数据发送线程按预设周期检测所述公共数据发送队列是否存在所述待发送数据;若存在,则将所述待发送数据发送至所述数据接收方。可选的,还包括:创建数据接收线程,创建数据接收线程并利用所述数据接收线程检测接收端口是否存在所述待接收数据;若存在,则将所述待接收数据存储至所述公共数据接收队列中。可选的,接收所述待接收数据包括:按照先入先出的顺序依次接收所述待接收数据。本申请还提供了一种基于线程池的数据通讯的系统,该系统包括:线程创建模块,用于创建数据处理线程并将所述数据处理线程添加至所述线程池中;数据发送模块,用于利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;数据接收模块,用于利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据,若存在则接收所述待接收数据。可选的,所述数据发送模块包括:发送检测单元,用于利用所述数据发送线程按预设周期检测所述公共数据发送队列是否存在所述待发送数据;发送单元,用于当所述公共数据发送队列存在所述待发送数据时,将所述待发送数据发送至所述数据接收方。可选的,还包括:接收检测模块,用于创建数据接收线程并利用所述数据接收线程检测接收端口是否存在所述待接收数据;接收模块,用于当接收端口存在所述待接收数据时,将所述待接收数据存储至所述公共数据接收队列中。可选的,所述数据接收模块包括:获取单元,用于按照先入先出的顺序依次获取所述待接收数据。本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现以下步骤:创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据,若存在则接收所述待接收数据。本申请还提供了一种服务器,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现以下步骤:创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据,若存在则接收所述待接收数据。本专利技术提供了一种基于线程池的数据通讯的方法,创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据,若存在则接收所述待接收数据。本方法能够通过在数据发送端与数据接收端之间设置公共数据发送队列与公共数据接收队列,将上述两个队列作为待发送数据与待接收数据的“中转站”实现了异步通信,降低发送方和接收方由于等待另一方处理信息造成的计算和存储资源浪费,降低工作复杂度提升工作效率。本申请同时还提供了一种基于线程池的数据通讯的系统、一种计算机可读存储介质及一种服务器,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例所提供的一种基于线程池的数据通讯的方法的流程图;图2为本申请实施例所提供的另一种基于线程池的数据通讯的方法的流程图;图3为本申请实施例所提供的一种基于线程池的数据通讯的系统的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面请参见图1,图1为本申请实施例所提供的一种基于线程池的数据通讯的方法的流程图;具体步骤可以包括:S101:创建数据处理线程并将所述数据处理线程添加至所述线程池中;其中,本步骤的目的是在数据发送端构建一个能够处理数据的数据处理线程,数据处理线程是存在于线程池中。本实施例的整个方案的执行主体都是发送端,当然在某个数据交互过程中的发送端也可能是另一个数据交互过程中的接收端,也就是说发送端与接收端仅仅只是针对一个具体的数据交互过程而言的。本步骤中提到的数据处理线程可以根据数据处理的类型分为若干类,包括增加、删除、查询等,此处的数据处理线程为所有相关线程的总称,本领域的技术人员可以根据方案的实际应用条件灵活设置数据处理线程的种类,此处不进行具体的限定。当然,在本步骤之前还可以包括读取配置文件,确定接收和发送数据的端口、数据处理框架线程数等配置信息,创建公共数据发送队列和公共数据接收队列等操作,这些操作可以在进行数据传输之前就已经执行完毕,即不必每次进行数据传输都需要进行本文档来自技高网...
一种基于线程池的数据通讯的方法及系统

【技术保护点】
一种基于线程池的数据通讯的方法,其特征在于,包括:创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据;若存在,则接收所述待接收数据。

【技术特征摘要】
1.一种基于线程池的数据通讯的方法,其特征在于,包括:创建数据处理线程并将所述数据处理线程添加至所述线程池中;利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述待发送数据存储至公共数据发送队列,以便数据发送线程将所述待发送数据发送至数据接收方;利用所述数据处理线程检测公共数据接收队列中是否存在待接收数据;若存在,则接收所述待接收数据。2.根据权利要求1所述方法,其特征在于,所述数据发送线程将所述待发送数据发送至数据接收方包括:利用所述数据发送线程按预设周期检测所述公共数据发送队列是否存在所述待发送数据;若存在,则将所述待发送数据发送至所述数据接收方。3.根据权利要求1所述方法,其特征在于,还包括:创建数据接收线程,创建数据接收线程并利用所述数据接收线程检测接收端口是否存在所述待接收数据;若存在,则将所述待接收数据存储至所述公共数据接收队列中。4.根据权利要求3所述方法,其特征在于,接收所述待接收数据包括:按照先入先出的顺序依次接收所述待接收数据。5.一种基于线程池的数据通讯的系统,其特征在于,包括:线程创建模块,用于创建数据处理线程并将所述数据处理线程添加至所述线程池中;数据发送模块,用于利用所述数据处理线程执行数据处理操作得到待发送数据,并将所述...

【专利技术属性】
技术研发人员:玄加林
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1