CN107370667B - 多线程并行处理方法和装置、可读介质和存储控制器 - Google Patents
多线程并行处理方法和装置、可读介质和存储控制器 Download PDFInfo
- Publication number
- CN107370667B CN107370667B CN201710639880.0A CN201710639880A CN107370667B CN 107370667 B CN107370667 B CN 107370667B CN 201710639880 A CN201710639880 A CN 201710639880A CN 107370667 B CN107370667 B CN 107370667B
- Authority
- CN
- China
- Prior art keywords
- thread
- message
- command
- message queue
- command 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 claims abstract description 15
- 230000003993 interaction Effects 0.000 claims description 21
- 230000006854 communication Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种多线程并行处理方法和装置、以及一种可读介质和存储控制器,该多线程并行处理的方法包括:启动多个线程,每一个线程对应一个消息队列;多个线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到不同处理线程的消息队列中;每一个处理线程依次对消息队列中的命令消息进行处理;将需要反馈的处理结果发送给多个线程中的反馈线程的消息队列中;反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。具有多个线程,且每一条命令消息都会进入合适线程的消息队列,提高了命令信息的处理速度;各个线程处理各自消息列队中的命令消息,各个线程之间互不影响,提高客户端稳定性,使客户端高效稳定运行。
Description
技术领域
本发明涉及通讯技术领域,特别涉及一种多线程并行处理方法和装置,以及一种可读介质和存储控制器。
背景技术
即时通信是指能够即时发送和接收互联网消息等的业务。在当前基于互联网技术的即时通信工具普及范围极广,拥有者大量的用户群体。甚至可以说即时通信工具现已取代电话或者短信,成为最常用的通信方式。各大互联网企业均推出过不同的即时通信工具。市面常用的即时通信工具如MSN、QQ、YY语音、微信等。
现在通信过程中客户端会接收到一条一条的命令来处理用户的请求,比如添加好友,或者给好友发送消息等。客户端对这些请求的处理大部分采用单线程处理,这样会影响速度,比如上传或者下载文件,需要占用大量时间,更甚会阻塞线程,从而降低客户端的稳定性,即时通信时信息处理效率较低。
发明内容
本发明实施例提供了一种多线程并行处理方法和装置,以及一种可读介质和存储控制器,能够提高客户端的稳定性,同时提高即时通信时信息处理的效率。
第一方面,本发明实施例提供了一种多线程并行处理方法,该方法包括:
启动多线程,每个线程对应一个消息队列;
多线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到不同处理线程的消息队列中;
每个处理线程依次对消息队列中的命令消息进行处理。
优选地,在每个处理线程依次对消息队列中的命令消息进行处理后,进一步包括:
将需要反馈的处理结果发送给多线程中的反馈线程的消息队列中;
反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。
优选地,启动的多线程包括:启动接收线程、服务交互线程、数据交互线程、耗时线程和反馈线程;
根据命令消息的类型将命令消息分发到相应的处理线程的消息队列中,包括:
当命令消息为与服务器交互时,将该命令消息分发到服务交互线程的消息队列中;
当命令消息为与数据库交互时,将该命令消息分发到数据交互线程的消息队列中;
当命令消息为耗时操作时,将该命令消息分发到耗时线程的消息队列中。
优选地,耗时线程的数量为至少两个;
将该命令消息分发到耗时线程的消息队列中,包括:
确定每一个耗时线程的消息队列中命令消息的数量,将当前命令消息分发到命令消息数量最少的消息队列中。
第二方面,本发明实施例提供了一种多线程并行处理装置,该装置包括:启动单元、控制单元和处理单元,其中,
启动单元,用于启动多线程,每一个线程对应一个消息队列;
控制单元,用于使多线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到不同处理线程的消息队列中;
处理单元,用于使每一个处理线程依次对消息队列中的命令消息进行处理。
优选地,该装置进一步包括:反馈线程;
处理单元,还用于将需要反馈的处理结果发送给多个线程中的反馈线程的消息队列中;
反馈单元,用于使反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。
优选地,启动单元,具体用于启动接收线程、服务交互线程、数据交互线程、耗时线程和反馈线程;
控制单元,具体用于当命令消息为与服务器交互时,将该命令消息分发到服务交互线程的消息队列中、当命令消息为与数据库交互时,将该命令消息分发到数据交互线程的消息队列中以及当命令消息为耗时操作时,将该命令消息分发到耗时线程的消息队列中。
优选地,耗时线程的数量为至少两个;
当命令消息为耗时操作时,控制单元具体用于确定每一个耗时线程的消息队列中命令消息的数量,将当前命令消息分发到命令消息数量最少的消息队列中。
第三方面,本发明实施例提供了一种可读介质,该可读介质包括:执行指令,当存储控制器的处理器执行所述执行指令时,存储控制器执行第一方面中任一所述的多线程并行处理方法。
第四方面,本发明实施例提供了一种存储控制器,该存储控制器包括:处理器、存储器和总线;处理器和存储器通过总线连接;
当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行第一方面中任一所述的多线程并行处理方法。
与现有技术相比,本发明具有以下有益效果:
(1)具有多个线程,且每一条命令消息都会进入合适线程的消息队列,提高了命令信息的处理速度;
(2)各个线程处理各自消息列队中的命令消息,各个线程之间互不影响,提高客户端稳定性,使客户端高效稳定运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种多线程并行处理方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种多线程并行处理方法,该方法包括:
启动多线程,每一个线程对应一个消息队列。
多线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到处理线程的消息队列中。
每一个处理线程依次对消息队列中的命令消息进行处理。
将需要反馈的处理结果发送给多个线程中的反馈线程的消息队列中。
反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。
在本发明一个实施例中,启动客户端时,创建以下几个线程:
1.启动一个request线程,用来接收用户的请求;
2.启动一个net线程,用来和服务器交互;
3.启动一个db线程,用来和数据库交互;
4.启动三个other线程,用来处理耗时操作;
5.启动一个reponse线程,用来通知界面返回;
根据实际情况,线程的种类以及每一种线程的数量均可以进行调整,例如:other线程为二个或四个等等。每一个线程都对应一个消息队列,各个线程循环的读取队列里面的命令消息,并做相应的处理。
用户发送一条请求命令,命令消息先进request线程,对命令消息进行分发。
如果命令消息是要和服务器交互的,则转入net线程;
如果命令消息是要和数据库交互的,则转入db线程;
如果命令消息是耗时操作,比如上传或者下载文件,则转入other线程;
处理完成后需要通知界面结果的,则转入reponse线程。
在该实施了中,由于具有三个other线程,则在将命令消息分发到other线程时需要判断分发到哪一个other线程的消息队列中。分发方法则可以根据实际情况用户自行设定。例如:确定每一个other线程的消息队列中命令消息的数量,将当前命令消息分发到命令消息数量最少的消息队列中;或者,确定每一个other线程的消息队列中命令消息的总耗时,将当前命令消息分发到命令消息总耗时最短的消息队列中。
本发明实施例提供了一种多线程并行处理装置,该装置包括:启动单元、控制单元和处理单元,其中,
启动单元,用于启动多个线程,每一个线程对应一个消息队列;
控制单元,用于使多线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到处理线程的消息队列中;
处理单元,用于使每一个处理线程依次对消息队列中的命令消息进行处理。
本发明一个实施例中,该装置进一步包括:反馈线程;
处理单元,还用于将需要反馈的处理结果发送给多个线程中的反馈线程的消息队列中;
反馈单元,用于使反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。
本发明一个实施例中,启动单元,具体用于启动接收线程、服务交互线程、数据交互线程、耗时线程和反馈线程;
控制单元,具体用于当命令消息为与服务器交互时,将该命令消息分发到服务交互线程的消息队列中、当命令消息为与数据库交互时,将该命令消息分发到数据交互线程的消息队列中以及当命令消息为耗时操作时,将该命令消息分发到耗时线程的消息队列中。
本发明一个实施例中,耗时线程的数量为至少两个;
当命令消息为耗时操作时,控制单元具体用于确定每一个耗时线程的消息队列中命令消息的数量,将当前命令消息分发到命令消息数量最少的消息队列中。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,该可读介质包括:执行指令,当存储控制器的处理器执行所述执行指令时,存储控制器执行上述任一实施例所述的多线程并行处理方法。
本发明实施例提供了一种存储控制器,该存储控制器包括:处理器、存储器和总线;处理器和存储器通过总线连接;
当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例所述的多线程并行处理方法。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (4)
1.一种多线程并行处理方法,其特征在于,应用于即时通信客户端,该方法包括:
启动多线程,每个线程对应一个消息队列;所述多线程包括:接收线程、服务交互线程、数据交互线程、耗时线程、反馈线程;且耗时线程的数量为至少两个;
多线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到不同处理线程的消息队列中;其中,
当命令消息为与服务器交互时,将该命令消息分发到服务交互线程的消息队列中;
当命令消息为与数据库交互时,将该命令消息分发到数据交互线程的消息队列中;
当命令消息为耗时操作时,将该命令消息分发到耗时线程的消息队列中,即确定每一个耗时线程的消息队列中命令消息的数量,将当前命令消息分发到命令消息数量最少的消息队列中;
每个处理线程依次对消息队列中的命令消息进行处理,并将需要反馈的处理结果发送给多线程中的反馈线程的消息队列中;反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。
2.一种多线程并行处理装置,其特征在于,该装置包括:启动单元、控制单元和处理单元,其中,
启动单元,用于启动多线程,每一个线程对应一个消息队列;所述多线程包括:接收线程、服务交互线程、数据交互线程、耗时线程;
控制单元,用于使多线程中的接收线程接收用户的命令消息,并根据命令消息的类型将命令消息分发到不同处理线程的消息队列中;其中,当命令消息为与服务器交互时,将该命令消息分发到服务交互线程的消息队列中、当命令消息为与数据库交互时,将该命令消息分发到数据交互线程的消息队列中以及当命令消息为耗时操作时,将该命令消息分发到耗时线程的消息队列中;
处理单元,用于使每一个处理线程依次对消息队列中的命令消息进行处理;
其中,所述耗时线程的数量为至少两个;当命令消息为耗时操作时,控制单元具体用于确定每一个耗时线程的消息队列中命令消息的数量,将当前命令消息分发到命令消息数量最少的消息队列中;
并且所述多线程还包括:反馈线程;所述处理单元,还用于将需要反馈的处理结果发送给多线程中的反馈线程的消息队列中;该装置进一步包括反馈单元,用于使反馈线程依次将消息队列中需要反馈的处理结果反馈至用户。
3.一种可读介质,其特征在于,该可读介质包括:执行指令,当存储控制器的处理器执行所述执行指令时,存储控制器执行权利要求1所述的多线程并行处理方法。
4.一种存储控制器,其特征在于,该存储控制器包括:处理器、存储器和总线;处理器和存储器通过总线连接;
当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行权利要求1所述的多线程并行处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710639880.0A CN107370667B (zh) | 2017-07-31 | 2017-07-31 | 多线程并行处理方法和装置、可读介质和存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710639880.0A CN107370667B (zh) | 2017-07-31 | 2017-07-31 | 多线程并行处理方法和装置、可读介质和存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107370667A CN107370667A (zh) | 2017-11-21 |
CN107370667B true CN107370667B (zh) | 2021-05-07 |
Family
ID=60309518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710639880.0A Active CN107370667B (zh) | 2017-07-31 | 2017-07-31 | 多线程并行处理方法和装置、可读介质和存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107370667B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108289124B (zh) * | 2018-01-25 | 2021-07-20 | 广州市巨硅信息科技有限公司 | 一种数据管理方法 |
CN108667725B (zh) * | 2018-04-25 | 2021-06-11 | 哈尔滨电气股份有限公司 | 一种基于多种接入及边缘计算的工业软网关以及实现方法 |
CN108984450B (zh) * | 2018-06-08 | 2020-10-23 | 华为技术有限公司 | 数据传输方法、装置和设备 |
CN109067844A (zh) * | 2018-07-09 | 2018-12-21 | 上海瀚银信息技术有限公司 | 一种消息通讯系统 |
CN109582445A (zh) * | 2018-09-29 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 消息处理方法、装置、电子设备及计算机可读存储介质 |
CN109358960A (zh) * | 2018-11-01 | 2019-02-19 | 郑州云海信息技术有限公司 | 一种任务分发方法、系统、设备及计算机可读存储介质 |
CN110430174A (zh) * | 2019-07-19 | 2019-11-08 | 上海易点时空网络有限公司 | 多方通信方法及装置 |
CN111078436B (zh) * | 2019-12-18 | 2023-04-07 | 上海金仕达软件科技股份有限公司 | 数据处理的方法、装置、设备及存储介质 |
CN111737026A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种基于lookup操作的多线程消息处理方法 |
CN111737030A (zh) * | 2020-06-24 | 2020-10-02 | 广东浪潮大数据研究有限公司 | 一种控制指令处理方法、装置、设备及计算机存储介质 |
CN113515391A (zh) * | 2021-05-14 | 2021-10-19 | 北京字节跳动网络技术有限公司 | 消息处理的方法、装置、电子设备和计算机可读存储介质 |
CN113139798B (zh) * | 2021-06-07 | 2024-02-20 | 中科计算技术西部研究院 | 基因测序流程管理控制方法及系统 |
CN113241120B (zh) * | 2021-06-07 | 2024-08-09 | 中科计算技术西部研究院 | 一种基因测序系统及测序方法 |
CN114003409A (zh) * | 2021-11-04 | 2022-02-01 | 中国银行股份有限公司 | 一种基于Redis的消息处理方法和设备 |
CN114338756B (zh) * | 2021-11-11 | 2024-03-08 | 北京蜂云科创信息技术有限公司 | 一种用于商用车智能网联高并发通信的方法及系统 |
CN114374684B (zh) * | 2021-12-27 | 2023-05-16 | 山东浪潮科学研究院有限公司 | 一种shell命令优化方法及系统 |
CN114339044B (zh) * | 2021-12-29 | 2024-06-18 | 天津天地伟业智能安全防范科技有限公司 | 一种基于消息队列的高吞吐量的抓拍方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011149564A1 (en) * | 2010-05-28 | 2011-12-01 | Tetris Online, Inc. | Interactive hybrid asynchronous computer game infrastructure |
CN103684944A (zh) * | 2012-09-10 | 2014-03-26 | 西门子信号有限公司 | 嵌入式网关、采用该网关的铁路监测系统及其方法 |
CN104702534A (zh) * | 2015-03-30 | 2015-06-10 | 无锡天脉聚源传媒科技有限公司 | 一种实现多进程共享端口的数据处理的方法及装置 |
CN105868031A (zh) * | 2016-03-24 | 2016-08-17 | 车智互联(北京)科技有限公司 | 一种数据传输装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262680A (zh) * | 2015-10-21 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种应用于云存储系统的多线程nas网关 |
-
2017
- 2017-07-31 CN CN201710639880.0A patent/CN107370667B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011149564A1 (en) * | 2010-05-28 | 2011-12-01 | Tetris Online, Inc. | Interactive hybrid asynchronous computer game infrastructure |
CN103684944A (zh) * | 2012-09-10 | 2014-03-26 | 西门子信号有限公司 | 嵌入式网关、采用该网关的铁路监测系统及其方法 |
CN104702534A (zh) * | 2015-03-30 | 2015-06-10 | 无锡天脉聚源传媒科技有限公司 | 一种实现多进程共享端口的数据处理的方法及装置 |
CN105868031A (zh) * | 2016-03-24 | 2016-08-17 | 车智互联(北京)科技有限公司 | 一种数据传输装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107370667A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370667B (zh) | 多线程并行处理方法和装置、可读介质和存储控制器 | |
CN108388479B (zh) | 延迟消息推送方法、装置、计算机设备及存储介质 | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
US8818940B2 (en) | Systems and methods for performing record actions in a multi-tenant database and application system | |
CN107092521B (zh) | 一种分布式任务调度方法、装置及系统 | |
CN107623731B (zh) | 一种任务调度方法、客户端、服务集群及系统 | |
US8671306B2 (en) | Scaling out a messaging system | |
WO2017066804A1 (en) | Event driven subscription matching | |
CN111124708B (zh) | 面向微服务的批推理方法、服务器和计算机可读存储介质 | |
JP2005521945A (ja) | 共通作業キュー環境における最適格サーバ | |
US20220405122A1 (en) | Systems, methods, and apparatuses for processing routine interruption requests | |
CN110569124A (zh) | 一种任务分配方法和装置 | |
US8510426B2 (en) | Communication and coordination between web services in a cloud-based computing environment | |
EP3687133B1 (en) | System and method for synchronization of media objects between devices operating in a multiroom system | |
US20150120853A1 (en) | Parallel message processing on diverse messaging buses | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
US11307974B2 (en) | Horizontally scalable distributed system for automated firmware testing and method thereof | |
JP2019087098A (ja) | プログラム及び情報処理装置 | |
CN114020408A (zh) | 一种任务分片配置方法及装置、设备、存储介质 | |
CN111045778B (zh) | 一种虚拟机的创建方法、装置、服务器及存储介质 | |
WO2017168238A1 (en) | Conflation of topic selectors | |
CN111159236A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109542601B (zh) | 策略编译方法、装置、电子设备及计算机存储介质 | |
US11032375B2 (en) | Automatic scaling for communications event access through a stateful interface | |
US10950328B2 (en) | Method, apparatus and system for detecting structural variations |
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 |