CN107526645A - 一种通信优化方法及系统 - Google Patents

一种通信优化方法及系统 Download PDF

Info

Publication number
CN107526645A
CN107526645A CN201710797002.1A CN201710797002A CN107526645A CN 107526645 A CN107526645 A CN 107526645A CN 201710797002 A CN201710797002 A CN 201710797002A CN 107526645 A CN107526645 A CN 107526645A
Authority
CN
China
Prior art keywords
asynchronous
name
completing port
server
pipeline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710797002.1A
Other languages
English (en)
Other versions
CN107526645B (zh
Inventor
黄浩
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710797002.1A priority Critical patent/CN107526645B/zh
Priority to PCT/CN2017/120151 priority patent/WO2019047441A1/zh
Publication of CN107526645A publication Critical patent/CN107526645A/zh
Application granted granted Critical
Publication of CN107526645B publication Critical patent/CN107526645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种通信优化方法及系统,所述的方法包括:S1,为每一个客户端进程创建对应的命名管道;S2,将所有的命名管道句柄绑定到服务器的完成端口上,其中,完成端口运行于后台线程中;S3,通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行处理。本发明通过创建一个完成端口,将与客户端进程对应的所有命名管道句柄都绑定到完成端口上,利用完成端口来管理所有客户端的异步I/O操作,而完成端口只需要在一个后台线程中运行即可,因此,实现了通过一个后台线程就可以处理多个客户端的请求事件,相比传统的需要多个线程,避免了线程阻塞的问题,以及提高了CPU的处理效率。

Description

一种通信优化方法及系统
技术领域
本发明涉及通信技术领域,更具体地,涉及一种通信优化方法及系统。
背景技术
在大型开发过程中,为了提高程序的运算效率与稳定性,充分利用计算机CPU的性能,通常会创建多个进程来实现核心的服务功能,由于每个进程都是一个独立的实例,所以会涉及到多进程之间通信的问题。
传统方案是采用多线程技术方案,采用多个线程对多个进程进行管理,即针对每一个客户端进程,就需要一个对应的线程对该客户端进程进行管理,这样在后台的线程会有很多个,会增加程序资源大量的消耗。另外,由于线程太多,CPU需要花费更多的时间来调度和切换这些线程,造成CPU处理效率低下,频繁的线程阻塞和唤醒阻塞对CPU造成的负荷加重,会严重影响程序的运行性能问题。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的通信优化方法及系统。
根据本发明的第一个方面,提供了一种通信优化方法,包括:
S1,为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道的接口函数与服务器完成异步I/O操作;
S2,将所有的命名管道句柄绑定到服务器的完成端口上,其中,所述完成端口运行于服务器的后台线程中;
S3,通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
本发明的有益效果为:通过在服务器创建一个完成端口,将与客户端进程对应的所有命名管道句柄都绑定到完成端口上,利用完成端口来管理所有客户端的异步I/O操作,而完成端口只需要在一个后台线程中运行即可,因此,实现了通过一个后台线程就可以处理多个客户端的请求事件,相比传统的需要多个线程,避免了线程阻塞的问题,以及提高了CPU的处理效率。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述步骤S1中为每一个客户端进程创建对应的命名管道进一步包括:
调用CreatNamePipe接口函数为每一个客户端进程创建对应的命名管道,并保存该接口函数返回的每一个命名管道句柄。
进一步的,所述步骤S1之前还包括:
在服务器定义异步调用overlapped结构体,该结构体用于实现I/O接口的异步调用;
相应地,所述步骤S1还包括:
通过向命名管道上的接口函数传递overlapped结构体参数,实现该接口函数的异步调用。
进一步的,所述步骤S2还包括:
基于接口函数,在服务器上创建完成端口,并保存该接口函数返回的完成端口句柄;
基于该接口函数,将所有命名管道句柄绑定到完成端口上,以便于通过完成端口管理所有的命名管道。
进一步的,所述步骤S3中通过完成端口获取每一个命名管道上的异步I/O操作进一步包括:
通过完成端口接收每一个客户端进程与服务器进行的异步I/O操作,并将所有的异步I/O操作按照时间顺序存储于队列中,其中,每一个客户端进程通过相应的命名管道与服务器进行异步I/O操作。
进一步的,所述步骤S2还包括:
调用CreatThreat函数在服务器创建一个后台线程,使得所述完成端口运行于所述后台线程中;
相应地,所述步骤S3还包括:
后台线程通过调用GetQueuedCompletionStatus接口函数获取完成端口的队列中存储的异步I/O操作。
进一步的,所述步骤S3中根据每一个异步I/O操作的类型,调用相应的函数方法进行处理进一步包括:
若异步I/O操作为连接请求I/O事件,则调用ConnectNamedPipe函数等待下一个客户端连接;
若异步I/O操作为读请求I/O事件,则调用ReadFile函数接口从客户端发送的数据;
若异步I/O操作为写请求I/O事件,则调用WriteFile函数向客户端发送数据。
根据本发明的第二个方面,提供了一种通信优化系统,包括:
创建模块,用于为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道上的接口函数与服务器完成异步I/O操作;
绑定模块,用于将所有的命名管道句柄绑定到服务器完成端口上,其中,所述完成端口运行于服务器的后台线程中;
获取模块,用于通过完成端口获取每一个命名管道上的异步I/O操作;
处理模块,用于根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
根据本发明的第三方面,提供了一种通信优化方法的设备,包括处理器、存储器和总线;
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行通信优化方法。
根据本发明的第四方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行通信优化方法。
附图说明
图1为本发明一个实施例的通信优化方法流程图;
图2为本发明另一个实施例的通信优化系统连接框图;
图3为本发明又一个实施例的通信优化系统整体连接框图;
图4为本发明再一个实施例的通信优化方法的设备连接框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的通信优化方法,包括:S1,为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道上的接口函数与服务器完成异步I/O操作;S2,将所有的命名管道句柄绑定到服务器的完成端口上,其中,完成端口运行于服务器的后台线程中;S3,通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行处理。
在大型项目开发过程中,为了提高程序的运算效率与稳定性,都会创建多个进程来实现核心的服务器功能,由于每一个进程都是一个独立的实例,所以会涉及多进程之间的通信问题。目前通常是采用多线程技术,在多个线程中实现同步调用,对于现有技术,需要在服务器上创建多个线程,通过每一个线程来对对应的客户端进程实现管理。这种在后台创建多个线程的方式,会导致线程阻塞的状况,影响程序的运行性能。
因此,本实施例提供了一套只需要在后台服务器创建一个线程就能对所有的客户端进程进行管理的方法,具体的,该方法的具体实现为,为每一个客户端进程创建对应的命名管道,其中,一个客户端进程需要创建对应的一个命名管道。每一个客户端进程通过调用对应的命名管道上的接口函数实现与服务器的通信,在本实施例中,每一个客户端进程通过异步调用命名管道上的接口函数来实现与服务器的异步I/O操作。
然后在服务器创建一个完成端口,将前述创建的所有命名管道的句柄绑定到完成端口上,其中,句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标识应用程序中的不同对象和同类对象中的不同的实例。句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象,应用程序能够通过句柄访问相应对象的信息。因此,通过将所有命名管道的句柄绑定到完成端口上,通过完成端口来获取所有命名管道的信息,来管理所有的命名管道,其中,完成端口运行于一个后台线程上,因此,只需要一个后台线程即可以实现对所有命名管道的管理。随后,通过完成端口获取每一个客户端进程经过命名管道与服务器进行的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行处理。
本实施例通过在服务器创建一个完成端口,将与客户端进程对应的所有命名管道句柄都绑定到完成端口上,利用完成端口来管理所有客户端的异步I/O操作,而完成端口只需要在一个后台线程中运行即可,因此,实现了通过一个后台线程就可以处理多个客户端的请求事件,相比传统的需要多个线程,避免了线程阻塞的问题,以及提高了CPU的处理效率。
在上述实施例的基础上,本发明的一个实施例中,所述步骤S1中为每一个客户端进程创建对应的命名管道进一步包括:调用CreatNamePipe接口函数为每一个客户端进程创建对应的命名管道,并保存该接口函数返回的每一个命名管道句柄。
在为客户端进程创建对应的命名管道时,本实施例是调用CreatNamePipe接口函数为每一个客户端进程创建对应的命名管道,并保存该接口函数返回的每一个命名管道PipeHandle句柄。
在上述各实施例的基础上,本发明的另一个实施例中,所述步骤S1之前还包括:在服务器定义overlapped结构体,该结构体用于实现I/O接口的异步调用;相应地,所述步骤S1还包括:通过向命名管道上的接口函数传递overlapped结构体参数实现该接口函数的异步调用。
每一个命名管道上具有多个接口函数,比如,ConnectNamePipe、WriteFile和ReadFile等相关接口函数,为实现这些接口函数的异步调用,本实施例在服务器定义一个异步调用结构体,称之为overlapped结构体,该异步调用结构体主要用于操作异步I/O接口。其中,通过向命名管道上的接口函数传递overlapped结构体参数实现该接口函数的异步调用,每一个客户端进程可通过异步调用对应命名管道上的接口函数实现与服务器的异步I/O操作。
在上述各实施例的基础上,本发明的另一个实施例中,所述步骤S2还包括:调用CreatIoCompletionPort接口函数在服务器上创建完成端口,并保存该接口函数返回的完成端口句柄;基于该接口函数将所有命名管道句柄绑定到完成端口上,以便于通过完成端口管理所有的命名管道。
在服务器上创建完成端口的具体实现为,通过调用CreatIoCompletionPort(PipeHandle)接口函数在后台创建一个完成端口,并将完成端口PortHandle句柄保存起来。该接口函数的作用就是将每一个命名管道PipeHandle句柄绑定到完成端口PortHandle上,这样完成端口就能够管理所有的命名管道上的异步I/O操作。
其中,完成端口是操作系统维护的内核对象,在I/O操作上的特点是速度快以及并发量大,完成端口可以管理上万个命名管道的异步I/O操作,也就是可以接收上万个客户端进程的连接,完成端口只需要运行在一个后台线程,也即通过一个线程即可实现对所有进程的管理。
在上述各实施例的基础上,本发明的一个实施例中,所述步骤S3中通过完成端口获取每一个命名管道上的异步I/O操作进一步包括:通过完成端口接收每一个客户端进程与服务器进行的异步I/O操作,并将所有的异步I/O操作按照时间顺序存储于队列中,其中,每一个客户端进程通过相应的命名管道与服务器进行异步I/O操作。
上述实施例在后台创建了一个完成端口,通过完成端口对所有命名管道的异步I/O操作进行管理,当每一个客户端进程通过异步调用对应命名管道的接口函数实现与服务器的操作时,完成端口接收每一个客户端进程通过相应的命名管道与服务器进行的异步I/O操作,并按照请求时间顺序将异步I/O操作存储于队列中。
在上述各个实施例的基础上,本发明的另一个实施例中,所述步骤S2还包括:调用CreatThreat函数创建一个后台线程,使得所述完成端口运行于所述后台线程中;相应地,所述步骤S3还包括:后台线程通过调用GetQueuedCompletionStatus接口函数获取完成端口中存储异步I/O操作的队列。
在整个实现的过程中,还需要在服务器上创建一个后台线程,具体为,调用CreatThreat函数创建一个后台线程,使得所述完成端口运行于所述后台线程中,创建后台线程的作用主要是负责从完成端口上获取队列中的异步I/O操作。具体为后台线程通过调用GetQueuedCompletionStatus(overLapped)接口函数获取完成端口中存储异步I/O操作的队列,进而获取到每一个命名管道的异步I/O操作。
在上述各实施例的基础上,本发明的一个实施例中,所述步骤S3中根据每一个异步I/O操作的类型,调用相应的函数方法进行处理进一步包括:若异步I/O操作为连接请求I/O事件,则调用ConnectNamedPipe函数等待下一个客户端连接;若异步I/O操作为读请求I/O事件,则调用ReadFile函数接口从客户端发送的数据;若异步I/O操作为写请求I/O事件,则调用WriteFile函数向客户端发送数据。
上述的后台线程通过完成端口获取到每一个命名管道的异步I/O操作,异步I/O操作通常有3种类型,后台线程根据异步I/O操作的类型,分别调用不同的函数对异步I/O操作进行处理。具体为,若异步I/O操作为连接请求I/O事件,则调用ConnectNamedPipe函数等待下一个客户端连接;若异步I/O操作为读请求I/O事件,则调用ReadFile函数接口从客户端发送的数据;若异步I/O操作为写请求I/O事件,则调用WriteFile函数向客户端发送数据。若没有异步I/O操作完成,则会使后台线程休眠,直到有异步I/O事件时自动唤醒线程。
参见图2,提供了本发明另一个实施例的通信优化系统,包括创建模块21、绑定模块22、获取模块23和处理模块24。
创建模块21,用于为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道上的接口函数与服务器完成异步I/O操作。
绑定模块22,用于将所有的命名管道句柄绑定到服务器完成端口上,其中,所述完成端口运行于服务器的后台线程中。
获取模块23,用于通过完成端口获取每一个命名管道上的异步I/O操作。
处理模块24,用于根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
其中,创建模块21具体用于:调用CreatNamePipe接口函数为每一个客户端进程创建对应的命名管道,并保存该接口函数返回的每一个命名管道句柄。
参见图3,在上述实施例的基础上,本实施例提供的通信优化系统还包括定义模块24和异步调用模块25。
定义模块24,用于在服务器定义overlapped结构体,该结构体用于实现I/O接口的异步调用。
异步调用模块25,用于通过向命名管道上的接口函数传递overlapped结构体参数,实现该接口函数的异步调用。
创建模块21还用于:调用CreatIoCompletionPort接口函数在服务器上创建完成端口,并保存该接口函数返回的完成端口句柄。
相应地,绑定模块22,还用于:基于该接口函数,将所有命名管道句柄绑定到完成端口上,以便于通过完成端口管理所有的命名管道。
获取模块23具体用于:通过完成端口接收每一个客户端进程与服务器进行的异步I/O操作,并将所有的异步I/O操作按照时间顺序存储于队列中,其中,每一个客户端进程通过相应的命名管道与服务器进行异步I/O操作。
创建模块21,还用于:调用CreatThreat函数创建一个后台线程,使得所述完成端口运行于所述后台线程中;
相应地,获取模块23,还用于:通过调用GetQueuedCompletionStatus接口函数获取完成端口中存储异步I/O操作的队列。
处理模块24具体用于:若异步I/O操作为连接请求I/O事件,则调用ConnectNamedPipe函数等待下一个客户端连接。
若异步I/O操作为读请求I/O事件,则调用ReadFile函数接口从客户端发送的数据。
若异步I/O操作为写请求I/O事件,则调用WriteFile函数向客户端发送数据。
参见图4,示出本申请实施例的通信优化方法的设备的结构框图。
参照图4,通信优化方法的设备包括:处理器(processor)401、存储器(memory)402和总线403;其中,所述处理器401和存储器402通过所述总线403完成相互间的通信。
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道的接口函数与服务器完成异步I/O操作;将所有的命名管道句柄绑定到服务器的完成端口上,其中,所述完成端口运行于服务器的后台线程中;通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述对应实施例所提供的通信优化方法,例如包括:为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道的接口函数与服务器完成异步I/O操作;将所有的命名管道句柄绑定到服务器的完成端口上,其中,所述完成端口运行于服务器的后台线程中;通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的通信优化方法,例如包括:为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道的接口函数与服务器完成异步I/O操作;将所有的命名管道句柄绑定到服务器的完成端口上,其中,所述完成端口运行于服务器的后台线程中;通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的通信优化方法的设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明提供的一种通信优化方法及系统,通过在后台创建一个完成端口,将与客户端进程对应的所有命名管道句柄都绑定到完成端口上,利用完成端口来管理所有客户端进程的异步I/O操作,而完成端口只需要在一个后台线程中运行即可,因此,实现了通过一个后台线程就可以处理多个客户端的请求事件,相比传统的需要多个线程,避免了线程阻塞的问题,以及提高了CPU的处理效率,并且向现有的同步调用方式优化为异步调用方式,减小了线程的负担。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种通信优化方法,其特征在于,包括:
S1,为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道的接口函数与服务器完成异步I/O操作;
S2,将所有的命名管道句柄绑定到服务器的完成端口上,其中,所述完成端口运行于服务器的后台线程中;
S3,通过完成端口获取每一个命名管道上的异步I/O操作,并根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
2.如权利要求1所述的通信优化方法,其特征在于,所述步骤S1中为每一个客户端进程创建对应的命名管道进一步包括:
调用CreatNamePipe接口函数为每一个客户端进程创建对应的命名管道,并保存该接口函数返回的每一个命名管道句柄。
3.如权利要求1所述的通信优化方法,其特征在于,所述步骤S1之前还包括:
在服务器定义异步调用overlapped结构体,该结构体用于实现I/O接口的异步调用;
相应地,所述步骤S1还包括:
通过向命名管道上的接口函数传递overlapped结构体参数,实现该接口函数的异步调用。
4.如权利要求2所述的通信优化方法,其特征在于,所述步骤S2还包括:
基于接口函数,在服务器上创建完成端口,并保存该接口函数返回的完成端口句柄;
基于该接口函数,将所有命名管道句柄绑定到完成端口上,以便于通过完成端口管理所有的命名管道。
5.如权利要求4所述的通信优化方法,其特征在于,所述步骤S3中通过完成端口获取每一个命名管道上的异步I/O操作进一步包括:
通过完成端口接收每一个客户端进程与服务器进行的异步I/O操作,并将所有的异步I/O操作按照时间顺序存储于队列中,其中,每一个客户端进程通过相应的命名管道与服务器进行异步I/O操作。
6.如权利要求5所述的通信优化方法,其特征在于,所述步骤S2还包括:
调用CreatThreat函数在服务器创建一个后台线程,使得所述完成端口运行于所述后台线程中;
相应地,所述步骤S3还包括:
后台线程通过调用GetQueuedCompletionStatus接口函数获取完成端口的队列中存储的异步I/O操作。
7.如权利要求6所述的通信优化方法,其特征在于,所述步骤S3中根据每一个异步I/O操作的类型,调用相应的函数方法进行处理进一步包括:
若异步I/O操作为连接请求I/O事件,则调用ConnectNamedPipe函数等待下一个客户端连接;
若异步I/O操作为读请求I/O事件,则调用ReadFile函数接口从客户端发送的数据;
若异步I/O操作为写请求I/O事件,则调用WriteFile函数向客户端发送数据。
8.一种通信优化系统,其特征在于,包括:
创建模块,用于为每一个客户端进程创建对应的命名管道,其中,每一个客户端进程通过调用对应命名管道上的接口函数与服务器完成异步I/O操作;
绑定模块,用于将所有的命名管道句柄绑定到服务器完成端口上,其中,所述完成端口运行于服务器的后台线程中;
获取模块,用于通过完成端口获取每一个命名管道上的异步I/O操作;
处理模块,用于根据每一个异步I/O操作的类型,调用相应的函数方法进行相应的处理。
9.一种通信优化方法的设备,其特征在于,包括处理器、存储器和总线;
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-7任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
CN201710797002.1A 2017-09-06 2017-09-06 一种通信优化方法及系统 Active CN107526645B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710797002.1A CN107526645B (zh) 2017-09-06 2017-09-06 一种通信优化方法及系统
PCT/CN2017/120151 WO2019047441A1 (zh) 2017-09-06 2017-12-29 一种通信优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710797002.1A CN107526645B (zh) 2017-09-06 2017-09-06 一种通信优化方法及系统

Publications (2)

Publication Number Publication Date
CN107526645A true CN107526645A (zh) 2017-12-29
CN107526645B CN107526645B (zh) 2019-01-29

Family

ID=60683718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710797002.1A Active CN107526645B (zh) 2017-09-06 2017-09-06 一种通信优化方法及系统

Country Status (2)

Country Link
CN (1) CN107526645B (zh)
WO (1) WO2019047441A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833578A (zh) * 2018-06-30 2018-11-16 武汉斗鱼网络科技有限公司 基于fifo命名管道进行双工通信的方法及相关设备
CN109062686A (zh) * 2018-07-09 2018-12-21 武汉斗鱼网络科技有限公司 多进程管理方法、存储介质、电子设备及系统
CN109086380A (zh) * 2018-07-25 2018-12-25 光大环境科技(中国)有限公司 对历史数据进行压缩存储的方法及系统
CN109947799A (zh) * 2018-07-25 2019-06-28 光大环境科技(中国)有限公司 对历史数据进行反压缩读取的方法及装置
CN110018908A (zh) * 2018-01-08 2019-07-16 武汉斗鱼网络科技有限公司 一种进程间通信方法、电子设备及可读存储介质
CN110535940A (zh) * 2019-08-29 2019-12-03 北京浪潮数据技术有限公司 一种bmc的连接管理方法、系统、设备及存储介质
CN110688203A (zh) * 2018-07-05 2020-01-14 武汉斗鱼网络科技有限公司 一种任务执行方法和装置
CN111385251A (zh) * 2018-12-28 2020-07-07 武汉斗鱼网络科技有限公司 一种提高客户端运行稳定性的方法、系统、服务器及存储介质
CN112114955A (zh) * 2020-09-28 2020-12-22 广州锦行网络科技有限公司 Windows平台下实现单进程单线程完成端口的方法
CN113760986A (zh) * 2021-01-29 2021-12-07 北京沃东天骏信息技术有限公司 一种数据查询方法、装置、设备及存储介质
CN114691037A (zh) * 2022-03-18 2022-07-01 阿里巴巴(中国)有限公司 卸载卡命名空间管理、输入输出请求处理系统和方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992433B (zh) * 2019-04-11 2021-06-29 苏州浪潮智能科技有限公司 一种分布式tgt通信优化方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901596B1 (en) * 1998-05-07 2005-05-31 Hewlett-Packard Development Company, L.P. Method of communicating asynchronous events to remote procedure call clients
CN102103526A (zh) * 2011-02-14 2011-06-22 博视联(苏州)信息科技有限公司 服务端和客户端间通过服务管理进行进程间通信的方法及系统
CN102591726A (zh) * 2011-12-31 2012-07-18 青岛海信宽带多媒体技术有限公司 一种多进程通信方法
US9183065B1 (en) * 2012-11-01 2015-11-10 Amazon Technologies, Inc. Providing access to an application programming interface through a named pipe
CN106161537A (zh) * 2015-04-10 2016-11-23 阿里巴巴集团控股有限公司 远程过程调用的处理方法、装置、系统及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100530107C (zh) * 2007-03-02 2009-08-19 中国科学院声学研究所 基于io事件通知机制的单进程内容服务器装置及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901596B1 (en) * 1998-05-07 2005-05-31 Hewlett-Packard Development Company, L.P. Method of communicating asynchronous events to remote procedure call clients
CN102103526A (zh) * 2011-02-14 2011-06-22 博视联(苏州)信息科技有限公司 服务端和客户端间通过服务管理进行进程间通信的方法及系统
CN102591726A (zh) * 2011-12-31 2012-07-18 青岛海信宽带多媒体技术有限公司 一种多进程通信方法
US9183065B1 (en) * 2012-11-01 2015-11-10 Amazon Technologies, Inc. Providing access to an application programming interface through a named pipe
CN106161537A (zh) * 2015-04-10 2016-11-23 阿里巴巴集团控股有限公司 远程过程调用的处理方法、装置、系统及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DONGLI YANG 等: "Application and research on on-line automatic-monitoring platform of radiation sources based on the data communication optimization", 《PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND ELECTRONICS ENGINEERING (ICCSEE 2013)》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018908B (zh) * 2018-01-08 2021-05-28 武汉斗鱼网络科技有限公司 一种进程间通信方法、电子设备及可读存储介质
CN110018908A (zh) * 2018-01-08 2019-07-16 武汉斗鱼网络科技有限公司 一种进程间通信方法、电子设备及可读存储介质
CN108833578B (zh) * 2018-06-30 2021-07-23 武汉斗鱼网络科技有限公司 基于fifo命名管道进行双工通信的方法及相关设备
CN108833578A (zh) * 2018-06-30 2018-11-16 武汉斗鱼网络科技有限公司 基于fifo命名管道进行双工通信的方法及相关设备
CN110688203A (zh) * 2018-07-05 2020-01-14 武汉斗鱼网络科技有限公司 一种任务执行方法和装置
CN110688203B (zh) * 2018-07-05 2022-05-13 武汉斗鱼网络科技有限公司 一种任务执行方法和装置
CN109062686B (zh) * 2018-07-09 2021-04-23 武汉斗鱼网络科技有限公司 多进程管理方法、存储介质、电子设备及系统
CN109062686A (zh) * 2018-07-09 2018-12-21 武汉斗鱼网络科技有限公司 多进程管理方法、存储介质、电子设备及系统
CN109086380B (zh) * 2018-07-25 2022-09-16 光大环境科技(中国)有限公司 对历史数据进行压缩存储的方法及系统
CN109947799A (zh) * 2018-07-25 2019-06-28 光大环境科技(中国)有限公司 对历史数据进行反压缩读取的方法及装置
CN109086380A (zh) * 2018-07-25 2018-12-25 光大环境科技(中国)有限公司 对历史数据进行压缩存储的方法及系统
CN109947799B (zh) * 2018-07-25 2023-03-24 光大环境科技(中国)有限公司 对历史数据进行反压缩读取的方法及装置
CN111385251A (zh) * 2018-12-28 2020-07-07 武汉斗鱼网络科技有限公司 一种提高客户端运行稳定性的方法、系统、服务器及存储介质
CN110535940A (zh) * 2019-08-29 2019-12-03 北京浪潮数据技术有限公司 一种bmc的连接管理方法、系统、设备及存储介质
CN112114955A (zh) * 2020-09-28 2020-12-22 广州锦行网络科技有限公司 Windows平台下实现单进程单线程完成端口的方法
CN113760986A (zh) * 2021-01-29 2021-12-07 北京沃东天骏信息技术有限公司 一种数据查询方法、装置、设备及存储介质
CN114691037A (zh) * 2022-03-18 2022-07-01 阿里巴巴(中国)有限公司 卸载卡命名空间管理、输入输出请求处理系统和方法

Also Published As

Publication number Publication date
WO2019047441A1 (zh) 2019-03-14
CN107526645B (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN107526645A (zh) 一种通信优化方法及系统
CN104662538B (zh) 半连接加速
WO2018099299A1 (zh) 一种图数据处理的方法、装置及系统
JP7012689B2 (ja) コマンド実行方法及び装置
US20160085738A1 (en) Cloud-Based Parallel Computation Using Actor Modules
CN108304307A (zh) 一种区块链上智能合约的性能检测方法
CN102576354A (zh) 支持不同部署架构的可扩展框架
CN115150471B (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN110750331B (zh) 一种针对教育桌面云应用的容器集群调度方法及平台
CN116662038B (zh) 基于共享内存的工业信息检测方法、装置、设备及介质
CN110751458A (zh) 一种业务审批方法、装置和系统
CN116820535A (zh) 任务处理方法、装置、计算机可读存储介质和电子装置
CN109978392A (zh) 敏捷软件开发管理方法、装置、电子设备、存储介质
US9032326B2 (en) Late instantiation of dependent objects
CN116662039B (zh) 基于共享内存的工业信息并行检测方法、装置及介质
CN107528871A (zh) 存储系统中的数据分析
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
CN116932147A (zh) 流式作业处理方法、装置、电子设备及介质
CN110247818A (zh) 一种数据监控方法、装置、存储介质和服务器
CN115794917A (zh) 一种资源数据的导入方法及装置
WO2020236360A1 (en) Remote operations application programming interface
CN110971928B (zh) 一种图片识别方法及相关装置
CN110120890A (zh) 混合云管理方法、系统、介质和电子设备
CN114584605B (zh) 一种业务分发方法、装置、电子设备及存储介质
CN111538559B (zh) 一种虚拟机迁移方法、装置、电子设备及其存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant