CN112596926A - 消息处理方法及装置 - Google Patents

消息处理方法及装置 Download PDF

Info

Publication number
CN112596926A
CN112596926A CN202011561946.7A CN202011561946A CN112596926A CN 112596926 A CN112596926 A CN 112596926A CN 202011561946 A CN202011561946 A CN 202011561946A CN 112596926 A CN112596926 A CN 112596926A
Authority
CN
China
Prior art keywords
message
target
messages
same
thread
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
CN202011561946.7A
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.)
Zhuhai Kingsoft Online Game Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Online Game 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 Zhuhai Kingsoft Online Game Technology Co Ltd filed Critical Zhuhai Kingsoft Online Game Technology Co Ltd
Priority to CN202011561946.7A priority Critical patent/CN112596926A/zh
Publication of CN112596926A publication Critical patent/CN112596926A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供消息处理方法及装置,其中所述消息处理方法包括:在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,增加了目标线程的执行效率。

Description

消息处理方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及消息处理方法及装置、计算设备和计算机可读存储介质。
背景技术
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,目前,线程之间大多采用消息进行异步通信,然而若线程出现阻塞的情况,线程的消息队列中可能出现大量重复的消息,线程需要对这些重复的消息进行处理,浪费了计算资源,因此,亟需一种解决上述技术问题的消息处理方法。
发明内容
有鉴于此,本申请实施例提供了消息处理方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种消息处理方法,包括:
在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;
在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
可选的,所述对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,包括:
按照目标线程的消息队列中消息的执行顺序,确定所述消息队列中第i条消息,其中,i从1开始取值且i为正整数;
判断所述第i条消息与在所述消息队列中第i+1条消息的消息类型是否相同;
若是,则将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,i自增1,返回执行所述确定所述消息队列中排在第i位的第i条消息步骤,其中,所述目标消息集合中包括至少两条目标消息;
相应的,所述在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,包括:
在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
可选的,所述将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,包括:
在所述第i条消息以及所述第i+1条消息中未添加消息标签的消息,添加相同类型的消息标签并加入所述目标消息集合;
相应的,所述在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,包括:
在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所有类型相同的消息标签对应的至少两条目标消息进行合并。
可选的,所述将所述至少两条目标消息进行合并,包括:
确定消息类型相同的至少两条目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中消息类型相同的最后一条目标消息;
删除所述消息类型相同的至少两条目标消息中所述最后一条目标消息之前的目标消息。
可选的,所述将所述至少两条目标消息进行合并,包括:
确定消息类型相同的至少两条目标消息中源属性信息相同的第一目标消息;
确定所述源属性信息相同的第一目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中源属性信息相同的最后一条第一目标消息;
删除所述源属性信息相同的第一目标消息中所述最后一条第一目标消息之前的第一目标消息。
可选的,所述在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,包括:
在所述消息队列接收第一线程发送的第一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
可选的,所述在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,包括:
在所述目标线程执行所述消息队列中任一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
可选的,所述目标线程,包括游戏线程。
根据本申请实施例的第二方面,提供了一种消息处理装置,包括:
检测模块,被配置为在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;
合并模块,被配置为在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述消息处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述消息处理方法的步骤。
本申请实施例提供的消息处理方法,通过在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;并在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,避免了目标线程处理很多重复消息,即可以减少目标线程做无意义的操作,节约了计算资源,提高了目标线程的处理效率。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的一种消息处理方法的流程图;
图3是本申请实施例提供的应用于游戏场景的一种消息处理方法的流程图;
图4是本申请实施例提供的一种消息处理装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请中,提供了消息处理方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示的一种消息处理方法中的步骤。图2示出了本申请一实施例提供的一种消息处理方法的流程图,具体包括以下步骤:
步骤202:在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
其中,所述预设触发条件,是指预先设置的触发对至少两条目标消息进行检测的触发条件,具体实施时,可以根据实际场景需要,设置触发条件,比如,设置周期性(每分钟,每10秒等)触发的触发条件,或者设置接收到检测至少两条目标消息的指令作为触发条件等,在此不做限制。
所述消息队列,是指是在消息的传输过程中保存消息的容器,所述类型相同,是指消息的消息类型相同,实际应用中,通常按照线程处理的操作不同,将消息分为不同的类型,比如,若线程处理的操作为控制角色移动操作,则消息类型为角色移动类型,若线程处理的操作为控制角色跳跃操作,则消息类型为控制角色跳跃类型。
可选的,所述目标线程,包括:游戏线程(即处理游戏运行的线程),相应的,消息队列中的消息即为游戏运行过程中产生的需要游戏线程执行的消息。
实际应用中,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,是指检测消息列队中消息类型相同且在消息队列中为相邻消息的至少两条目标消息(即检测消息队列中连续且类型重复的消息)。
比如,在消息队列中有6条消息,依次为消息1、消息2、消息3、消息4、消息5、消息6,其中消息1、消息2、消息3的消息类型都是角色移动类型,消息4的消息类型是角色释放技能类型、消息5的消息类型是角色跳跃类型,消息6的消息类型是角色移动类型,则消息队列中消息类型相同且相邻的至少两条目标消息为消息1、消息2以及消息3。
由于预设触发条件是多种多样的,本说明书实施例提供的第一种可选实施方式中,消息队列接收新消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,具体采用如下方式实现:
在所述消息队列接收第一线程发送的第一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
具体的,所述第一线程,是指除目标线程之外的其他线程,所述第一消息,是指消息列队接收到的第一线程发送的任一消息,即在至少两条目标消息队列接收到任一新消息的情况下,对消息队列中的至少两条目标消息进行检测,以便后续对检测出的至少两条目标消息进行合并,即减少了消息队列中的消息,提升了目标线程的执行效率。
比如,目标线程的消息队列中有7条消息,在消息队列接收其他线程发送的第8条消息的情况下,对目标线程的8条消息中检测至少两条目标消息。
此外,本说明书实施例提供的第二种可选实施方式中,在目标线程处理消息队列中的消息之前,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,具体采用如下方式实现:
在所述目标线程执行所述消息队列中任一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
实际应用中,目标线程对消息队列中的消息进行执行时,可以按照先进先出的方式执行,在目标线程执行消息队列中任一消息之前,对消息队列中的至少两条目标消息进行检测,避免了目标线程执行重复的消息,提升了目标线程的执行效率。
比如,目标线程的消息队列中有8条消息,在目标线程执行消息队列中8条消息中第1条消息之前,检测目标线程的8条消息中的至少两条目标消息。
具体实施时,通过依次将消息与其相邻的消息进行消息类型的对比,以获得本说明书实施例提供的一种可选实施方式中,所述对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,具体采用如下方式实现:
按照目标线程的消息队列中消息的执行顺序,确定所述消息队列中第i条消息,其中,i从1开始取值且i为正整数;
判断所述第i条消息与在所述消息队列中第i+1条消息的消息类型是否相同;
若是,表明第i+1条消息和第i条消息类型相同且相邻的至少两条目标消息,则将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,i自增1,返回执行所述确定所述消息队列中排在第i位的第i条消息步骤,其中,所述目标消息集合中包括至少两条目标消息;
若否,表明消息队列中后续的消息中,没有与第i条消息其类型相同且相邻的至少两条目标消息了,则执行下述步骤204,或判断第i+1消息是否为所述消息队列中最后一条消息,若否,表明消息队列中还可能存在其他消息类型相同且相邻的至少两条目标消息,则将所述第i+1条消息作为所述第i条消息,执行上述判断所述第i条消息与在所述消息队列中第i+1条消息的消息类型是否相同步骤;若是,表明消息队列中不可能再存在其他消息类型相同且相邻的至少两条目标消息,则执行下述步骤204。
具体的,所述执行顺序,是指消息队列中消息的执行顺序,实际应用中,执行顺序可以被设置为先进消息队列先被执行,还可以设置为消息优先级高则优先执行等,在此不做限制。
在确定执行顺序之后,按照执行顺序依次对比消息队列中相邻消息的消息类型是否相同,若相同,则将消息作为至少两条目标消息加入目标消息集合,并继续对比下一条消息的消息类型是否相同,若不相同,则结束循环,执行下述步骤204。
此外,需要说明的是,按照执行顺序获取第1条消息,若无与第1条消息类型相同且相邻的消息,还可以继续获取第2条消息,检测与第2条消息类型相同且相邻的消息,即可以在消息队列中检测获得多组消息类型相同且相邻的至少两条目标消息。
比如,目标线程的消息队列中有8条消息,分别为消息1、消息2、消息3、消息4、消息5、消息6、消息7、消息8,在检测到消息1、消息2、消息3是类型相同且相邻的至少两条目标消息,且确定消息4不是与消息1类型相同且相邻的消息之后,还可以继续获取第4条消息(即执行上述确定所述消息队列中第i条消息步骤,其中,i等于4),检测消息队列中是否存在与消息4类型相同且相邻的消息,进而实现对整个消息队列中类型相同且相邻的至少两条目标消息的检测。
进一步的,为了对目标消息集合中的至少两条目标消息进行进一步区分,为目标消息集合中相同类型的至少两条目标消息,添加相同类型的消息标签,以便后续对携带相同类型的消息标签的至少两条目标消息进行合并,本说明书实施例提供的一种可选实施方式中,所述将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,具体采用如下方式实现:
在所述第i条消息以及所述第i+1条消息中未添加消息标签的消息,添加相同类型的消息标签并加入所述目标消息集合。
实际应用中,在将消息作为目标消息集合之前,按照消息类型添加消息标签,以便对目标消息集合中相同类型的至少两条目标消息进行区分,也便于根据消息标签,对至少两条目标消息进行合并。
比如,消息1、消息2、消息3的消息类型都是角色移动类型,则在加入目标消息集合之前,为消息1、消息2、消息3分别添加角色移动类型标签。
步骤204:在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
在检测到至少两条目标消息的情况下,将至少两条目标消息进行合并,是为了避免目标线程多次执行重复的消息,从而提高目标线程的执行效率。
在上述将消息类型相同且相邻的消息加入目标消息集合的基础上,相应的,所述在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,包括:在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,实现了通过将消息类型相同且相邻的消息加入目标消息集合,以此和消息队列中的其他消息进行区分,以便对至少两条目标消息进行合并。
而在上述为消息类型相同且相邻的消息添加消息标签,并加入目标消息集合的基础上,相应的,所述在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,包括:在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所有类型相同的消息标签对应的至少两条目标消息进行合并,实现了通过将消息类型相同且相邻的消息添加消息标签并加入目标消息集合,以此和消息队列中的其他消息并和目标消息集合中的其他至少两条目标消息进行区分,以便对所有类型相同的消息标签对应的至少两条目标消息进行合并。
实际应用中,还可以不将至少两条目标消息加入目标消息集合,只通过添加消息类型对应的消息标签,将至少两条目标消息与其他消息进行区分,以便对至少两条目标消息进行合并。
具体实施时,将至少两条目标消息合并的方式是多种多样的,本说明书实施例提供的第一种可选实施方式中,所述将所述至少两条目标消息进行合并,具体采用如下方式实现:
确定消息类型相同的至少两条目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中消息类型相同的最后一条目标消息;
删除所述消息类型相同的至少两条目标消息中所述最后一条目标消息之前的目标消息。
具体的,在消息类型相同且相邻的至少两条目标消息中,只保留最后一条目标消息,而将其他的消息类型相同的目标消息,作为重复的消息进行删除,节约了目标线程的计算资源,提高了目标线程的处理效率。
实际应用中,一个消息队列中出现多个相同类型且相邻的消息,可能是由于目标线程阻塞,没有及时处理消息队列中的消息,而用户还在不断进行操作,导致消息队列中的消息出现积压,因此需要消息队列中重复的消息进行删除,只保留最近一次用户的操作。
以牌类游戏为例,玩家U1出牌,然而目标线程卡住了,导致玩家U1一直每有看到自己出牌成,因此玩家U1不断地点击出牌,因此目标线程的消息队列中有五个连续的消息,分别为消息A、消息B、消息C、消息D和消息E,且这五个消息的消息类型都为玩家U1出牌,这种情况下目标线程无需执行5次出牌,只需要执行用户U1的最后一次出牌操作即可,即执行消息E,则将消息A、消息B、消息C、消息D进行删除。
此外,本说明书实施例提供的第二种可选实施方式中,所述将所述至少两条目标消息进行合并,具体采用如下方式实现:
确定消息类型相同的至少两条目标消息中源属性信息相同的第一目标消息;
确定所述源属性信息相同的第一目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中源属性信息相同的最后一条第一目标消息;
删除所述源属性信息相同的第一目标消息中所述最后一条第一目标消息之前的第一目标消息。
实际应用中,可能存在至少两条目标消息的消息类型相同并不能表明至少两条目标消息是目标线程阻塞情况下出现的重复的消息,因此还需要根据至少两条目标消息的源属性信息进一步进行判断,其中,源属性信息,可以理解为至少两条目标消息中携带的操作前的属性信息,比如角色移动类型的消息中携带了角色移动之前的源坐标,以及角色移动的目标坐标,其中源坐标,即可以理解为角色移动类型的消息中的源属性信息。
沿用上例,消息1、消息2以及消息3是消息类型相同且相邻的至少两条目标消息,而其中,消息1和消息2的源属性信息相同,而消息3和消息2、消息1的源属性信息不同,则将确定消息1和消息2为第一目标消息,并确定消息2的执行顺序是在消息1的执行顺序之后,则删除消息队列中的消息1,只在消息队列中保留消息2。
综上所述,本申请实施例提供的一种消息处理方法,通过在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;并在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,避免了目标线程处理很多重复消息,即可以减少目标线程做无意义的操作,节约了计算资源,提高了目标线程的处理效率。
下述结合图3,以本申请一实施例的一种消息处理方法在游戏场景中的应用为例,对所述消息处理方法进行进一步说明。其中,图3示出了本申请一实施例提供的应用于游戏场景的一种消息处理方法的流程图,具体包括以下步骤:
步骤302,在游戏线程的消息队列接收第一线程发送的第一消息的情况下,对消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
步骤304,将检测出的消息类型相同的至少两条目标消息添加对应的消息标签。
步骤306,确定类型相同的消息标签对应的至少两条目标消息在所述消息队列中的执行顺序。
步骤308,基于所述执行顺序确定所述消息队列中携带类型相同的消息标签的最后一条目标消息。
步骤310,删除携带类型相同的消息标签的至少两条目标消息中所述最后一条目标消息之前的目标消息。
综上所述,本申请实施例提供的一种消息处理方法,通过在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;并在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,避免了目标线程处理很多重复消息,即可以减少目标线程做无意义的操作,节约了计算资源,提高了目标线程的处理效率。
与上述一种消息处理方法实施例相对应,本申请还提供了一种消息处理装置实施例,图4示出了本申请一实施例提供的一种消息处理装置的结构示意图。如图4所示,该装置包括:
检测模块402,被配置为在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;
合并模块404,被配置为在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
可选的,所述检测模块402,包括:
确定消息模块,被配置为按照目标线程的消息队列中消息的执行顺序,确定所述消息队列中第i条消息,其中,i从1开始取值且i为正整数;
第一判断模块,被配置为判断所述第i条消息与在所述消息队列中第i+1条消息的消息类型是否相同;
若是,运行加入模块,所述加入模块,被配置为则将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,i自增1,返回执行所述确定所述消息队列中排在第i位的第i条消息步骤,其中,所述目标消息集合中包括至少两条目标消息;
相应的,所述合并模块404,还被配置为在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
可选的,所述加入模块,还被配置为:
在所述第i条消息以及所述第i+1条消息中未添加消息标签的消息,添加相同类型的消息标签并加入所述目标消息集合;
相应的,所述合并模块404,还被配置为:
在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所有类型相同的消息标签对应的至少两条目标消息进行合并。
可选的,所述合并模块404,包括:
第一确定子模块,被配置为确定消息类型相同的至少两条目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中消息类型相同的最后一条目标消息;
第一删除子模块,被配置为删除所述消息类型相同的至少两条目标消息中所述最后一条目标消息之前的目标消息。
可选的,所述合并模块404,包括:
第二确定子模块,被配置为确定消息类型相同的至少两条目标消息中源属性信息相同的第一目标消息;
第三确定子模块,被配置为确定所述源属性信息相同的第一目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中源属性信息相同的最后一条第一目标消息;
第二删除子模块,被配置为删除所述源属性信息相同的第一目标消息中所述最后一条第一目标消息之前的第一目标消息。
可选的,所述检测模块402,还被配置为:
在所述消息队列接收第一线程发送的第一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
可选的,所述检测模块402,还被配置为:
在所述目标线程执行所述消息队列中任一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
可选的,所述目标线程,包括游戏线程。
综上所述,本申请实施例提供的一种消息处理装置,通过在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;并在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,避免了目标线程处理很多重复消息,即可以减少目标线程做无意义的操作,节约了计算资源,提高了目标线程的处理效率。
上述为本实施例的一种消息处理装置的示意性方案。需要说明的是,该消息处理装置的技术方案与上述的一种消息处理方法的技术方案属于同一构思,消息处理装置的技术方案未详细描述的细节内容,均可以参见上述一种消息处理方法的技术方案的描述。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的消息处理方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述消息处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的消息处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述消息处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (11)

1.一种消息处理方法,其特征在于,包括:
在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;
在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
2.根据权利要求1所述的消息处理方法,其特征在于,所述对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,包括:
按照目标线程的消息队列中消息的执行顺序,确定所述消息队列中第i条消息,其中,i从1开始取值且i为正整数;
判断所述第i条消息与在所述消息队列中第i+1条消息的消息类型是否相同;
若是,则将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,i自增1,返回执行所述确定所述消息队列中第i条消息步骤,其中,所述目标消息集合中包括至少两条目标消息;
相应的,所述在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,包括:
在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
3.根据权利要求2所述的消息处理方法,其特征在于,所述将所述第i条消息以及所述第i+1条消息中未加入目标消息集合中的消息加入所述目标消息集合,包括:
在所述第i条消息以及所述第i+1条消息中未添加消息标签的消息,添加相同类型的消息标签并加入所述目标消息集合;
相应的,所述在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并,包括:
在所述目标消息集合中检测到存在所述至少两条目标消息的情况下,将所有类型相同的消息标签对应的至少两条目标消息进行合并。
4.根据权利要求1所述的消息处理方法,其特征在于,所述将所述至少两条目标消息进行合并,包括:
确定消息类型相同的至少两条目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中消息类型相同的最后一条目标消息;
删除所述消息类型相同的至少两条目标消息中所述最后一条目标消息之前的目标消息。
5.根据权利要求1所述的消息处理方法,其特征在于,所述将所述至少两条目标消息进行合并,包括:
确定消息类型相同的至少两条目标消息中源属性信息相同的第一目标消息;
确定所述源属性信息相同的第一目标消息在所述消息队列中的执行顺序,基于所述执行顺序确定所述消息队列中源属性信息相同的最后一条第一目标消息;
删除所述源属性信息相同的第一目标消息中所述最后一条第一目标消息之前的第一目标消息。
6.根据权利要求1所述的消息处理方法,其特征在于,所述在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,包括:
在所述消息队列接收第一线程发送的第一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
7.根据权利要求1所述的消息处理方法,其特征在于,所述在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测,包括:
在所述目标线程执行所述消息队列中任一消息的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测。
8.根据权利要求1所述的消息处理方法,其特征在于,所述目标线程,包括游戏线程。
9.一种消息处理装置,其特征在于,包括:
检测模块,被配置为在满足预设触发条件的情况下,对目标线程的消息队列中消息类型相同并相邻的至少两条目标消息进行检测;
合并模块,被配置为在检测到所述至少两条目标消息的情况下,将所述至少两条目标消息进行合并。
10.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1至8任意一项所述方法的步骤。
11.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至8任意一项所述方法的步骤。
CN202011561946.7A 2020-12-25 2020-12-25 消息处理方法及装置 Pending CN112596926A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011561946.7A CN112596926A (zh) 2020-12-25 2020-12-25 消息处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011561946.7A CN112596926A (zh) 2020-12-25 2020-12-25 消息处理方法及装置

Publications (1)

Publication Number Publication Date
CN112596926A true CN112596926A (zh) 2021-04-02

Family

ID=75202461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011561946.7A Pending CN112596926A (zh) 2020-12-25 2020-12-25 消息处理方法及装置

Country Status (1)

Country Link
CN (1) CN112596926A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025649A (zh) * 2010-06-04 2011-04-20 西本新干线股份有限公司 企业服务总线的消息处理方法
JP2012014385A (ja) * 2010-06-30 2012-01-19 Digital Electronics Corp プログラマブル表示器およびデータ表示プログラム
CN103209153A (zh) * 2012-01-16 2013-07-17 阿里巴巴集团控股有限公司 消息处理方法、装置及系统
CN104468509A (zh) * 2014-10-29 2015-03-25 北方工业大学 手机网络游戏数据传输的方法、系统和手机用户端
CN111555961A (zh) * 2020-04-24 2020-08-18 北京达佳互联信息技术有限公司 一种消息显示方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025649A (zh) * 2010-06-04 2011-04-20 西本新干线股份有限公司 企业服务总线的消息处理方法
JP2012014385A (ja) * 2010-06-30 2012-01-19 Digital Electronics Corp プログラマブル表示器およびデータ表示プログラム
CN103209153A (zh) * 2012-01-16 2013-07-17 阿里巴巴集团控股有限公司 消息处理方法、装置及系统
CN104468509A (zh) * 2014-10-29 2015-03-25 北方工业大学 手机网络游戏数据传输的方法、系统和手机用户端
CN111555961A (zh) * 2020-04-24 2020-08-18 北京达佳互联信息技术有限公司 一种消息显示方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
万涛 等: "Microsoft Win32消息处理机制及应用编程", 计算机工程, no. 13 *

Similar Documents

Publication Publication Date Title
CN105677469B (zh) 定时任务执行方法及装置
JP2005222533A (ja) 挿入されたメッセージ修正を使用した、コード作成のため受信したメッセージディスパッチの調整
CN111726248A (zh) 一种告警根因定位方法及装置
CN114201278B (zh) 任务处理方法、任务处理装置、电子设备以及存储介质
KR102260631B1 (ko) 중복 이미지 파일 검색 방법 및 장치
US20170329655A1 (en) Method and apparatus of unloading out of memory processing flow to user space
CN110781180B (zh) 一种数据筛选方法和数据筛选装置
CN113139660A (zh) 模型推理方法、装置、电子设备及存储介质
CN111949324A (zh) 一种分布式序列号生成方法和装置
CN112199180A (zh) 多任务调度的方法及装置、电子设备及可读存储介质
US10740677B2 (en) Feature enumeration system, feature enumeration method and feature enumeration program
CN115801980A (zh) 视频生成方法和装置
CN110442439B (zh) 任务进程处理方法、装置和计算机设备
CN111522854B (zh) 一种数据标注方法、装置、存储介质及计算机设备
CN112596926A (zh) 消息处理方法及装置
CN110210215B (zh) 一种病毒检测的方法以及相关装置
CN112995532B (zh) 视频处理方法及装置
CN112000492B (zh) 公众号用户标签的管理系统及方法
US20220207388A1 (en) Automatically generating conditional instructions for resolving predicted system issues using machine learning techniques
CN111757115A (zh) 一种视频流处理方法及装置
KR101808993B1 (ko) 메시지 우선 발송을 위한 메시지 발송 시스템 및 방법
CN111625341A (zh) 一种任务调度管理方法以及装置
CN116108492B (zh) 可横向扩展的数据防泄漏系统
CN115080241A (zh) 数据处理方法以及装置
KR101810819B1 (ko) 통신사별 메시지 우선 발송을 위한 메시지 발송 시스템 및 방법

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.