CN105634984A - 基于tcp协议多线程的多对多医疗数据传输方法 - Google Patents

基于tcp协议多线程的多对多医疗数据传输方法 Download PDF

Info

Publication number
CN105634984A
CN105634984A CN201511009669.8A CN201511009669A CN105634984A CN 105634984 A CN105634984 A CN 105634984A CN 201511009669 A CN201511009669 A CN 201511009669A CN 105634984 A CN105634984 A CN 105634984A
Authority
CN
China
Prior art keywords
user
thread
data
queue
message
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.)
Pending
Application number
CN201511009669.8A
Other languages
English (en)
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.)
CHONGQING ANBIJIE TECHNOLOGY Co Ltd
Original Assignee
CHONGQING ANBIJIE 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 CHONGQING ANBIJIE TECHNOLOGY Co Ltd filed Critical CHONGQING ANBIJIE TECHNOLOGY Co Ltd
Priority to CN201511009669.8A priority Critical patent/CN105634984A/zh
Publication of CN105634984A publication Critical patent/CN105634984A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供的基于TCP协议多线程的多对多医疗数据传输方法,包括:a.建立用户数据转发会话组,b.会话组内的用户通过接收线程、发送线程和用户处理线程将数据实时发送给会话组内的其他用户,同时接收会话组内其他用户发送的数据,所述接收线程、发送线程和用户处理线程之间相互独立;本发明通过构建相互独立的接收线程、发送线程、用户处理线程,有效的解决了用户IO延迟对服务器的影响,本发明使传输具有实时性强、易于使用、高性能,操作简便实用,可扩展性好的特点,用户可以传输任意形式的数据,如数据流、文件等,为基于TCP协议多线程的多对多医疗数据传输提供了一整套高性能传输的解决方案。

Description

基于TCP协议多线程的多对多医疗数据传输方法
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种基于TCP协议多线程的多对多医疗数据传输方法。
背景技术
随着计算机应用的快速发展,计算机处理器已经广泛的应用在移动通信、数字消费电子和智能控制设备领域,人们对计算机处理器的各项性能的要求也越来越高,TCP传输协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,在医疗领域中,大多采用TCP协议进行传输,然而,在单线程处理器结构中只能发掘一个线程的指令级,传输效率低,多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能,其中,针对多核或多处理器中多线程的并发资源贡献分配如何进行优化,是能充分发挥计算机处理能力中的非常重要的一环,现有的多线程共享资源通常都在资源分配的过程中产生了加锁、解锁的性能消耗和冲突,当一线程正在进行操作时,需要让其他线程等待,需要其他线程等待操作完成之后,解锁并将其释放才能进行操作,这样会导致更新数据时需要频繁的加锁、解锁,造成读写线程等待时间过长,严重降低了多线程处理的效率,因此,需要一种新的多线程处理方法以解决上述问题。
发明内容
有鉴于此,本发明提供一种基于TCP协议多线程的多对多医疗数据传输方法,以解决上述问题。
本发明提供的基于TCP协议多线程的多对多医疗数据传输方法,包括:
a.建立用户数据转发会话组,
b.会话组内的用户通过接收线程、发送线程和用户处理线程将数据实时发送给会话组内的其他用户,同时接收会话组内其他用户发送的数据,所述接收线程、发送线程和用户处理线程之间相互独立。
进一步,所述步骤b具体包括:
b1.接收线程将接收用户发送的数据,并将数据加入到接收队列,同时通知用户处理线程,
b2.用户处理线程从接收队列中获取数据,根据需求将数据分发至对应用户的发送队列,
b3.发送线程从发送队列中获取数据并发送。
进一步,所述接收队列为用于存储转发服务器接收到的该用户发送的数据的数据队列;所述发送队列为用户用于存储即将发送给该用户的数据的数据队列。
进一步,接收线程、发送线程和用户处理线程设置有对应的消息队列,所述消息队列包括接收消息队列、发送消息队列和用户消息队列。
进一步,所述步骤b1具体包括:
接收消息队列将添加有用户身份信息的消息发送至接收线程,接收线程根据消息中的用户身份信息获取数据,并加入该用户的接收队列,同时在用户处理消息队列中将添加有该用户身份信息的消息,发送至用户处理线程。
进一步,所述步骤b2具体包括:
b21用户处理线程根据用户处理消息队列发送的消息中的用户身份信息,从接收队列中获取数据并进行处理;
b22.用户处理线程根据数据来源用户的请求查找应接收该数据的待转发用户,并将数据增加到所述待转发用户对应的发送队列中,同时将向所述待转发用户的发送消息队列发送通知消息。
进一步,所述步骤b3具体包括:
发送线程接收到所述通知消息,根据身份信息获取对应的发送队列数据并发送。
进一步,所述接收线程、发送线程和用户处理线程中的每条线程为服务器上的所有用户服务。
本发明的有益效果:本发明通过构建相互独立的接收线程、发送线程、用户处理线程,有效的解决了用户延迟对服务器的影响,本发明使传输具有实时性强、易于使用、高性能,操作简便实用,可扩展性好的特点,用户可以传输任意形式的数据,如数据流、文件等,为基于TCP协议多线程的多对多医疗数据传输提供了一整套高性能传输的解决方案。
附图说明
下面结合附图和实施例对本发明作进一步描述:
图1是本发明的原理示意图。
图2是本发明的实施例的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步描述:图1是本发明的原理示意图,图2是本发明的实施例的流程示意图。
如图1、2所示,本实施例中的基于TCP协议多线程的多对多医疗数据传输方法,包括:
a.建立用户数据转发会话组,
b.会话组内的用户通过接收线程、发送线程和用户处理线程将数据实时发送给会话组内的其他用户,同时接收会话组内其他用户发送的数据,所述接收线程、发送线程和用户处理线程之间相互独立。
本实施例基于TCP的多对多中转传输,处理会话组内成员数据相互转发,有效解决了用户IO延迟对服务器的影响,可扩展性和健壮性良好,用户可以传输任意形式的数据,包括数据流、文件等。本实施例中的多对多传输,首先要用户之间建立一个会话组,会话组中的用户可以相互同步实时分享自己的数据给会话组内每一个用户,同时能接收会话组内所有用户发送过来的数据。数据可以包括文字、文件、实时声音、实时影像等可以转换为二进制流形式的数据。当用户之间确定建立会话组后,任意用户的数据可以同步被同一会话组中所有用户接收,同时用户可以接收来自同一会话组中其他所有用户发送过来的数据。
在本实施例中,所述步骤b具体包括:
b1.接收线程将接收用户发送的数据,并将数据加入到接收队列,同时通知用户处理线程,
b2.用户处理线程从接收队列中获取数据,根据需求将数据分发至对应用户的发送队列,
b3.发送线程从发送队列中获取数据并发送。
在本实施例中,所述接收队列为用于存储转发服务器接收到的该用户发送的数据的数据队列;所述发送队列为用户用于存储即将发送给该用户的数据的数据队列。接收队列和发送队列均为用户与转发服务器之间的socket连接对应的一个数据队列,发送队列用来存储即将发送给该用户的数据,接收队列用来存储转发服务器接收到的该用户发送过来的数据。
在本实施例中,接收线程、发送线程和用户处理线程设置有对应的消息队列,所述消息队列包括接收消息队列、发送消息队列和用户消息队列。消息队列分为接收线程消息队列、发送线程消息队列、用户处理线程消息队列。消息队列是与接收线程、发送线程、用户处理线程一一对应的。
在本实施例中,接收消息队列将添加有用户身份信息的消息发送至接收线程,接收线程根据消息中的用户身份信息获取数据,并加入该用户的接收队列,同时在用户处理消息队列中将添加有该用户身份信息的消息,发送至用户处理线程。用户处理线程根据用户处理消息队列发送的消息中的用户身份信息,从接收队列中获取数据并进行处理;用户处理线程根据数据来源用户的请求查找应接收该数据的待转发用户,并将数据增加到所述待转发用户对应的发送队列中,同时将向所述待转发用户的发送消息队列发送通知消息。发送线程接收到所述通知消息,根据身份信息获取对应的发送队列数据并发送。本实施中一条线程对应一个cpu内核,当IO接收到一份数据后,在接收消息队列中增加一个带id的消息并通知接收线程,接收线程接收到消息根据id从IO缓冲中获取数据,加入该IO对应用户的接收队列,并在用户处理消息队列中增加一个带id的消息通并知用户处理线程。用户处理线程从用户处理消息队列获取消息,根据消息id从接收队列获取数据处理。用户处理线程根据该数据来源用户来查找应该接收此份数据的用户,把需要转发的数据增加到这些用户对应的发送队列中,并把该消息增加到这些用户的发送消息队列中。发送线程接收到消息,根据id获取对应的发送队列数据并发送。
在本实施例中,通过消息机制通线程去获取发送或接收队列的数据,同一条线程可以服务于连接上服务器的所有用户,减少不必要的线程上下文切换提高cpu的使用效率。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (8)

1.一种基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:包括:
a.建立用户数据转发会话组,
b.会话组内的用户通过接收线程、发送线程和用户处理线程将数据实时发送给会话组内的其他用户,同时接收会话组内其他用户发送的数据,所述接收线程、发送线程和用户处理线程之间相互独立。
2.根据权利要求1所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:所述步骤b具体包括:
b1.接收线程将接收用户发送的数据,并将数据加入到接收队列,同时通知用户处理线程,
b2.用户处理线程从接收队列中获取数据,根据需求将数据分发至对应用户的发送队列,
b3.发送线程从发送队列中获取数据并发送。
3.根据权利要求2所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:所述接收队列为用于存储转发服务器接收到的该用户发送的数据的数据队列;所述发送队列为用户用于存储即将发送给该用户的数据的数据队列。
4.根据权利要求3所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:接收线程、发送线程和用户处理线程设置有对应的消息队列,所述消息队列包括接收消息队列、发送消息队列和用户消息队列。
5.根据权利要求4所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:所述步骤b1具体包括:
接收消息队列将添加有用户身份信息的消息发送至接收线程,接收线程根据消息中的用户身份信息获取数据,并加入该用户的接收队列,同时在用户处理消息队列中将添加含有该用户身份信息的消息,发送至用户处理线程。
6.根据权利要求5所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:所述步骤b2具体包括:
b21用户处理线程根据用户处理消息队列发送的消息中的用户身份信息,从接收队列中获取数据并进行处理;
b22.用户处理线程根据数据来源用户的请求查找应接收该数据的待转发用户,并将数据增加到所述待转发用户对应的发送队列中,同时将向所述待转发用户的发送消息队列发送通知消息。
7.根据权利要求6所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:所述步骤b3具体包括:
发送线程接收到所述通知消息,根据身份信息获取对应的发送队列数据并发送。
8.根据权利要求7所述的基于TCP协议多线程的多对多医疗数据传输方法,其特征在于:所述接收线程、发送线程和用户处理线程中的每条线程为服务器上的所有用户服务。
CN201511009669.8A 2015-12-29 2015-12-29 基于tcp协议多线程的多对多医疗数据传输方法 Pending CN105634984A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511009669.8A CN105634984A (zh) 2015-12-29 2015-12-29 基于tcp协议多线程的多对多医疗数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511009669.8A CN105634984A (zh) 2015-12-29 2015-12-29 基于tcp协议多线程的多对多医疗数据传输方法

Publications (1)

Publication Number Publication Date
CN105634984A true CN105634984A (zh) 2016-06-01

Family

ID=56049498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511009669.8A Pending CN105634984A (zh) 2015-12-29 2015-12-29 基于tcp协议多线程的多对多医疗数据传输方法

Country Status (1)

Country Link
CN (1) CN105634984A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108401131A (zh) * 2018-05-01 2018-08-14 北京学易科技有限公司 线程处理方法及装置、服务器
CN108667725A (zh) * 2018-04-25 2018-10-16 哈尔滨电气股份有限公司 一种基于多种接入及边缘计算的工业软网关以及实现方法
CN109887609A (zh) * 2018-12-29 2019-06-14 医渡云(北京)技术有限公司 一种医疗数据采集方法、装置及业务系统
WO2021258750A1 (zh) * 2020-06-24 2021-12-30 广东浪潮智慧计算技术有限公司 一种控制指令处理方法、装置、设备及计算机存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549151B2 (en) * 2005-02-14 2009-06-16 Qnx Software Systems Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
CN101739296A (zh) * 2009-12-28 2010-06-16 广州菲音信息科技有限公司 数据处理系统和方法
CN102281186A (zh) * 2010-06-10 2011-12-14 英业达股份有限公司 网络数据处理方法
CN103475899A (zh) * 2013-07-30 2013-12-25 深圳市融创天下科技股份有限公司 数据分发方法和装置
CN103631568A (zh) * 2013-12-20 2014-03-12 厦门大学 面向医学图像的多线程并行计算方法
CN104486188A (zh) * 2014-11-18 2015-04-01 深圳达实智能股份有限公司 一种收发独立线程的设置方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549151B2 (en) * 2005-02-14 2009-06-16 Qnx Software Systems Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
CN101739296A (zh) * 2009-12-28 2010-06-16 广州菲音信息科技有限公司 数据处理系统和方法
CN102281186A (zh) * 2010-06-10 2011-12-14 英业达股份有限公司 网络数据处理方法
CN103475899A (zh) * 2013-07-30 2013-12-25 深圳市融创天下科技股份有限公司 数据分发方法和装置
CN103631568A (zh) * 2013-12-20 2014-03-12 厦门大学 面向医学图像的多线程并行计算方法
CN104486188A (zh) * 2014-11-18 2015-04-01 深圳达实智能股份有限公司 一种收发独立线程的设置方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周智洪 等: "短信互联互通实现方案", 《华侨大学学报(自然科学版)》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667725A (zh) * 2018-04-25 2018-10-16 哈尔滨电气股份有限公司 一种基于多种接入及边缘计算的工业软网关以及实现方法
CN108401131A (zh) * 2018-05-01 2018-08-14 北京学易科技有限公司 线程处理方法及装置、服务器
CN108401131B (zh) * 2018-05-01 2020-07-17 北京学易科技有限公司 线程处理方法及装置、服务器
CN109887609A (zh) * 2018-12-29 2019-06-14 医渡云(北京)技术有限公司 一种医疗数据采集方法、装置及业务系统
WO2021258750A1 (zh) * 2020-06-24 2021-12-30 广东浪潮智慧计算技术有限公司 一种控制指令处理方法、装置、设备及计算机存储介质

Similar Documents

Publication Publication Date Title
CN105634984A (zh) 基于tcp协议多线程的多对多医疗数据传输方法
TWI510030B (zh) 用於在客戶端裝置上利用封包服務分類執行封包佇列的系統及方法
CN102546612B (zh) 用户态下基于rdma协议的远程过程调用实现方法
Wen et al. Effective load balancing for cloud-based multimedia system
CN105357286B (zh) 一种基于Web的实时消息定向推送方法
CN110602156A (zh) 一种负载均衡调度方法及装置
CN103532876A (zh) 数据流的处理方法与系统
CN105072507B (zh) 一种多媒体数据的传输方法及系统
CN104735077A (zh) 一种使用环形缓存和环形队列实现udp高效并发的方法
CN103051521A (zh) 一种云环境下消息的转发方法
Mondal et al. Broadcast-and power-aware wireless NoC for barrier synchronization in parallel computing
WO2014206331A1 (zh) 一种资源访问方法和计算机设备
Mamidala et al. Efficient SMP-aware MPI-level broadcast over InfiniBand's hardware multicast
CN103401951B (zh) 基于对等架构的弹性云分发方法
CN102761608B (zh) Udp会话复用的方法和负载均衡设备
CN101132390A (zh) 基于p2p技术的流媒体系统
WO2008106879A1 (fr) Procédé et dispositif de traitement de transfert de données
CN103152382B (zh) 面向多宿主网络的多文件并发传输控制方法
CN105094990A (zh) 一种高效的实现大规模数据交换的系统及其方法
CN104899105A (zh) 一种进程间通信方法
WO2013029425A1 (zh) 一种音视频数据传输方法
Ren et al. Design and testbed evaluation of RDMA-based middleware for high-performance data transfer applications
Koop et al. Zero-copy protocol for mpi using infiniband unreliable datagram
CN103984544A (zh) 一种避免任务同时执行的方法
Mondal et al. Broadcast Mechanism Based on Hybrid Wireless/Wired NoC for Efficient Barrier Synchronization in Parallel Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160601

RJ01 Rejection of invention patent application after publication