CN108052400A - 消息快速处理方法、智能终端以及计算机可读存储介质 - Google Patents

消息快速处理方法、智能终端以及计算机可读存储介质 Download PDF

Info

Publication number
CN108052400A
CN108052400A CN201711399456.XA CN201711399456A CN108052400A CN 108052400 A CN108052400 A CN 108052400A CN 201711399456 A CN201711399456 A CN 201711399456A CN 108052400 A CN108052400 A CN 108052400A
Authority
CN
China
Prior art keywords
message
queue
default
pending
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
CN201711399456.XA
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.)
Shenzhen TCL New Technology Co Ltd
Original Assignee
Shenzhen TCL New 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 Shenzhen TCL New Technology Co Ltd filed Critical Shenzhen TCL New Technology Co Ltd
Priority to CN201711399456.XA priority Critical patent/CN108052400A/zh
Publication of CN108052400A publication Critical patent/CN108052400A/zh
Pending legal-status Critical Current

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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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)
  • Digital Computer Display Output (AREA)

Abstract

本发明公开了一种消息快速处理方法、智能终端以及计算机可读存储介质,所述消息快速处理方法包括以下步骤:检测系统消息队列中是否有临时储存的待处理消息;将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存;将预设阻塞队列中临时储存的待处理消息通过并发的方式进行快速处理。本发明通过使用线程池与预设阻塞队列对消息处理机制中的无法及时处理的消息进行快速处理,避免了系统因为消息处理不及时导致出现运行速度缓慢或内存泄露等不良现象,使得用户使用时系统的运行速度能够更好,提高了使用体验。

Description

消息快速处理方法、智能终端以及计算机可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种消息快速处理方法、智能终端以及计算机可读存储介质。
背景技术
随着安卓(Android)系统的发展,目前使用安卓系统的终端产品十分常见,但是随着安卓系统中安装的应用越来越多,终端的响应速度会随之出现下降,响应速度下降的其中一个因素就是消息处理机制Handle-Message。信息处理机制是通过一个整体的循环Looper进行运作,即由消息队列MessageQueue中获取消息并进行派发处理,将获取的消息处理完毕之后,则再次从消息队列中获取另一个消息进行派发处理。但是当消息队列中的某个消息在处理过程中遇到问题导致处理缓慢或者无法处理时,会导致其他消息的处理出现之后,严重时还可能出现卡顿或内存泄露等问题,使得系统的运行速度出现下降。
发明内容
本发明的主要目的在于提供一种消息快速处理方法、智能终端以及计算机可读存储介质,旨在解决安卓系统中消息处理缓慢导致的系统出现卡顿或内存丢失等现象,最终造成系统运行速度下降的问题。
为实现上述目的,本发明提供一种消息快速处理方法,所述消息快速处理方法包括以下步骤:
检测系统消息队列中是否有临时储存的待处理消息;
将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存;
将预设阻塞队列中临时储存的的待处理消息通过并行的方式进行快速处理。
可选的,所述检测系统消息队列中是否有临时储存的待处理消息的步骤包括:
检测消息队列是否为空,若消息队列不为空,则判定消息队列中储存有待处理消息。
可选的,所述检测消息队列是否为空的步骤包括:
检测消息队列的剩余容量是否与预设最大容量相同,若不相同则判定消息队列不为空。
可选的,所述将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存的步骤包括:
检测预设阻塞队列中是否具有空余容量,当若预设阻塞队列具有空余容量,将待处理消息转入预设阻塞队列。
可选的,所述当预设阻塞队列具有空余容量时,将待处理消息转入预设阻塞队列的步骤包括:
检测预设阻塞队列的当前容量,若当前容量小于等于预设空值容量,则判定预设阻塞队列无空余容量;
若当前容量大于预设空值容量,则判定预设阻塞队列有空余容量。
可选的,所述将预设阻塞队列中临时储存的的待处理消息通过并发的方式进行快速处理的步骤包括:
获取预设阻塞队列中的待处理消息,通过预设线程池对待处理消息进行快速处理。
可选的,所述通过预设线程池对待处理消息进行快速处理的步骤包括:
检测预设线程池中是否有空闲线程;
若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态;
若预设线程池中有空闲线程,则通过空闲线程对所述待处理消息进行快速处理。
可选的,所述若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态的步骤之后包括:
持续对线程池进行检测,若检测到线程池中出现空闲线程,则将唤醒用以取出待处理消息的线程进行待处理消息的取出,并重复所述通过空闲线程对所述待处理消息进行快速处理。
此外,为实现上述目的,本发明还提供一种智能终端,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息快速处理程序,所述消息快速处理程序被所述处理器执行时实现如上所述消息快速处理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储的消息快速处理程序,所述消息快速处理程序被处理器执行时实现如上所述的消息快速处理方法的步骤。
本发明提出的消息快速处理方法,通过建立一个储存消息用的阻塞队列与处理信息的线程池,同时将建立的阻塞队列与线程池在消息处理机制中进行配合运行,使得安卓系统中的消息处理机制的消息进行更快的派发处理,增加了消息处理的效率,这样就可以避免消息处理机制因某条消息处理耗时较大时,导致消息队列中其他消息滞后处理的问题,同时自身对于系统资源的消耗非常低。而将消息进行及时的处理之后,可以避免因为消息处理效率低下所导致的系统运行速度降低,内存资源泄露等问题,使得用户的使用体验得到了有效的提升。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端\装置结构示意图;
图2为本发明消息快速处理方法一实施例的流程示意图;
图3为本发明消息快速处理方法进行并发式的消息处理时示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端可以是智能电视,也可以是PC、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在智能终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,智能终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及消息快速处理程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的消息快速处理程序,并执行以下操作:
检测系统消息队列中是否有临时储存的待处理消息;
将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存;
将预设阻塞队列中临时储存的的待处理消息通过并行的方式进行快速处理。
进一步地,处理器1001可以调用存储器1005中存储的消息快速处理程序,还执行以下操作:
所述在监测到客户端发起网络操作之前,接收客户端发送的注册请求,并获取客户端侧用户的生物特征;
检测消息队列是否为空,若消息队列不为空,则判定消息队列中储存有待处理消息。
所述检测消息队列是否为空的步骤包括:
检测消息队列的剩余容量是否与预设最大容量相同,若不相同则判定消息队列不为空。
进一步地,处理器1001可以调用存储器1005中存储的消息快速处理程序,还执行以下操作:
检测预设阻塞队列中是否具有空余容量,当若预设阻塞队列具有空余容量,将待处理消息转入预设阻塞队列。
所述当预设阻塞队列具有空余容量时,将待处理消息转入预设阻塞队列的步骤包括:
检测预设阻塞队列的当前容量,若当前容量小于等于预设空值容量,则判定预设阻塞队列无空余容量;
若当前容量大于预设空值容量,则判定预设阻塞队列有空余容量。
进一步地,处理器1001可以调用存储器1005中存储的消息快速处理程序,还执行以下操作:
获取预设阻塞队列中的待处理消息,通过预设线程池对待处理消息进行快速处理。
所述通过预设线程池对待处理消息进行快速处理的步骤包括:
检测预设线程池中是否有空闲线程;
若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态;
若预设线程池中有空闲线程,则通过空闲线程对所述待处理消息进行快速处理。
所述若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态的步骤之后包括:
持续对线程池进行检测,若检测到线程池中出现空闲线程,则将唤醒用以取出待处理消息的线程进行待处理消息的取出,并重复所述通过空闲线程对所述待处理消息进行快速处理的步骤。
参照图2,本发明第一实施例提供一种消息快速处理方法,所述消息快速处理方法包括:
步骤S10,检测系统消息队列中是否有临时储存的待处理消息;
具体地,安卓系统中的消息处理机制设有一个消息队列,而消息队列中存放有需要进行处理的消息,即待处理消息,系统会将待处理消息逐个进行处理,而还没进行处理的消息就会存放在消息队列中。
步骤S20,将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存;
具体地,将消息队列中的待处理消息转移到用来快速处理消息的预设阻塞队列,这样能够让系统还没来得及处理的消息可以尽快进行处理。
步骤S30,将预设阻塞队列中临时储存的的待处理消息通过并行的方式进行快速处理。
具体地,待处理消息转入到预设阻塞队列中之后,会启动对应的线程用来对待处理消息进行派发处理,通过对应的线程可以加快消息的处理速度,,
安卓系统(Android)是目前使用最为广泛一种操作系统,安卓系统由于其友好的开发环境、丰富的扩展应用以及良好的使用体验等使其使用率遥遥领先其他操作系统。但是安卓系统也有一些不足的地方,其中最为突出的就是随着安卓系统使用的使用时间与安装应用的增加,安卓系统的运行速度会出现下降,导致这个问题的原因有很多,而其中一个重要的原因就是安卓系统的消息处理机制(Handle-Message)处理消息的效率过低。安卓系统的消息处理机制在接收到消息时,会将消息存放到消息队列中,然后在消息队列中取出消息进行派发处理,处理完一个消息后,再从消息队列中按照顺序取出第二个消息进行派发处理,直到消息队列中的消息全部派发完毕。但是若消息处理机制在派发某一消息时的过程耗较多,就会导致消息队列中储存的其他消息的派发出现滞后,严重时还会出现卡顿与内存泄露等问题。
为了解决消息处理机制所导致的系统问题,本发明使用一种消息处理方法与原生的消息处理机制进行并发式的消息处理策略,即消息处理机制在不能够及时处理额外的消息时,则通过本发明的消息处理方法进行处理,从而形成一个消息处理的并发式处理系统(消息处理的并发式处理示意图如图3)。首先通过建立一个阻塞队列来临时存储处理消息队列中未能够及时进行派发处理的消息,并且通过建立一个用以处理消息的线程池来对阻塞队列中的消息进行及时的处理。线程池是一种多线程处理形式,进行工作时线程池中的所有线程可以同时运行,所以通过线程池可以更快的完成消息的处理。所以通过阻塞队列能够使得安卓系统中的消息处理变快,有效地缓解了原有消息处理机制的滞后问题。而且整个流程操作难度低(建立线程池与阻塞队列的操作难度都不高),并且占用系统资源少(只需要分出极少量的系统资源给线程池与阻塞队列,二者就能够有效的完成全部功能)。
通过建立消息处理专用的线程池与阻塞队列,使得原本处理速度缓慢,容易产生滞后现象的消息处理机制的消息处理速度得到了极大的提升,原本的消息处理机制需要逐个对信息进行派发处理,并且处理速度缓慢,因此很容易造成消息不能及时进行派发处理,智能暂时储存在消息队列中,而当消息队列的容量达到上限时,此时如果再有新的消息需要进行处理,则有可能会造成消息的丢失。因此建立一个阻塞队列用以缓解消息队列的储存压力,并且可以方便的从阻塞队列中直接获取消息进行派送处理。而且本发明在进行消息处理时,对于安卓系统中原生的消息处理机制并不会造成破坏。同时可以在消息队列中的消息过多时,能够与消息处理机制同时生效,有效的辅助消息处理机制进行消息的派发处理,避免了消息处理机制因为消息过多,以及消息在派发处理时出现问题导致消息处理不及时,所造成的系统运行缓慢、内存丢失等问题。并且本发明自身对于系统的资源消耗非常低,不会对系统造成额外的负担。
通过本发明消息快速处理方法,能够有效提高安卓系统的消息处理速度,以及避免因为消息处理不及时所导致的一系列问题,例如系统运行缓慢或内存泄露等问题,使得用户在使用安装了安卓系统的智能终端时,能够获取到更好的使用体验,并且延长了相应终端的使用寿命。
进一步地,步骤S10检测系统消息队列中是否有临时储存的待处理消息的步骤包括:
步骤S11,检测消息队列是否为空,若消息队列不为空,则判定消息队列中储存有待处理消息。
具体地,当消息处理机制正在处理消息时,会将其余的待处理消息储存在消息队列中,因此通过检测消息队列中是否为空,可以判断当前消息队列中是否有待处理消息,有待处理消息则表明目前有消息需要进行处理。
本发明消息快速处理方法是与安卓系统原生的消息处理机制进行并发式的消息处理策略来增加消息处理的效率,因此在消息处理机制无法及时处理多余的消息时,本发明消息快速处理方法会对待处理的消息进行处理。而判断消息处理机制是有无法及时处理的待处理消息则可以通过检测消息队列,消息队列是消息处理机制中用来储存不能及时处理的消息的队列,因此对消息队列进行检测,若消息队列不为空,那么则表明消息处理机制目前有消息不能够及时处理,则本发明消息快速处理方法则将待处理消息进行处理,提高消息处理的效率。
进一步地,步骤S11检测消息队列是否为空的步骤包括:
步骤S111,检测消息队列的剩余容量是否与预设最大容量相同,若不相同则判定消息队列不为空。
具体地,检测消息队列是否为空的实质就是检测消息队列中是否储存有待处理消息,而消息队列的最大容量是有限的,当消息队列储存有待处理消息时,剩余容量就是减少,因此通过将消息队列的剩余容量与预设最大容量进行对比,就可以快速的得知消息队列是否为空。
若是直接打开消息队列,检测消息队列中是否储存有待处理消息,则需要进行打开队列等操作,而获取消息队列的剩余容量则相位简单,所以在判断消息队列是否为空(即判断消息队列中是否储存有待处理消息)的方式是通过消息队列的剩余容量与预设最大容量进行对比,由对比结果进行判断。通过消息队列的剩余容量与预设最大容量的对比结果判断是否储存有待处理消息,相比直接打开消息队列进行判断,判断的速度会有所提升,而判断消息队列的动作是经常发生的动作,因此能够使用消息队列的剩余容量进行判断,有效的进行了系统运行的优化。
进一步地,步骤S20将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存的步骤包括:
步骤S21,检测预设阻塞队列中是否具有空余容量,当若预设阻塞队列具有空余容量,将待处理消息转入预设阻塞队列。
具体地,预设的阻塞队列是本发明中用来临时储存从消息队列中获取的待处理消息的队列,必须在预设阻塞队列具有空余容量时才能够将消息队列中的待处理消息转入到预设阻塞队列。
预设阻塞队列的作用是将消息队列中的待处理消息转入并进行临时储存,等待本发明消息快速处理方法设置的线程池中有空闲的线程时,让空闲的线程对储存的待处理消息进行快速处理。而预设阻塞队列中没有空余容量时,表明目前还有较多的待处理消息等上述待线程池进行处理,因此为了避免数据丢失等情况,则不能够再进行待处理消息的获取与储存,直到预设阻塞队列中出现空余容量才能够继续获取待处理信息。
进一步地,步骤S21当预设阻塞队列具有空余容量时,将待处理消息转入预设阻塞队列的步骤包括:
步骤S211检测预设阻塞队列的当前容量,若当前容量小于等于预设空值容量,则判定预设阻塞队列无空余容量;
步骤S212若当前容量大于预设空值容量,则判定预设阻塞队列有空余容量。
具体地,预设阻塞队列是否具有空余容量的判断也是通过预设阻塞队列的剩余容量与预设最大容量的对比结果得出,判定预设阻塞队列中还有空余容量时,则表明预设阻塞队列可以储存更多的待处理消息。
当预设阻塞队列中还有剩余的容量时,则将消息队列中的待处理消息转入到预设阻塞队列中,通过消息快速处理的线程池进行快速处理。为了不占用过多的系统资源,线程池与预设阻塞队列在设置时均设置的较为微型(即线程池中的线程数与预设阻塞队列的容量都设置的较小),因此在待处理消息非常多时,消息快速处理的线程池与预设阻塞队列依然会发声堵塞的现象,而此时为了避免数据丢失(例如输入的待处理消息不能够及时处理,也没有多余的空间进行临时储存,则可能发生数据丢失)等不良现象的发生,在使用预设阻塞队列之前对预设阻塞队列的空余容量进行判断,以便保证数据安全。
进一步地,步骤S30将预设阻塞队列中临时储存的的待处理消息通过并发的方式进行快速处理的步骤包括:
步骤S31获取预设阻塞队列中的待处理消息,通过预设线程池对待处理消息进行快速处理。
具体地,将预设阻塞队列中储存的待处理消息按照顺序进行获取,获取到待处理消息之后使用预设线程池对待处理消息进行并发式的处理,使得待处理消息能够尽快的完成派送处理。
将预设阻塞队列中储存的待处理消息根据存入的顺序进行取出(先存入的先取出,这样能尽可能的使每个待处理消息在预设阻塞队列中储存的时间是减少的),然后通过设定好的线程池对取出的待处理消息进行派送处理。设定好的线程池中有多个线程,进行待处理消息的派送处理时,可以使用全部线程同时处理对一个任务,这样就可以让任务的处理速度变得更快,使得安卓系统的消息处理机制能够及时处理更多的消息。
进一步的,步骤S31通过预设线程池对待处理消息进行快速处理的步骤包括:
检测预设线程池中是否有空闲线程;
步骤S311,若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态;
具体地,如果预设线程池中的所有线程都在进行工作,则表明此时没有线程能够对更多的待处理消息进行派送处理,因此需要暂停待处理消息的取出步骤,待处理消息的取出也是由一个专用的线程负责,将用来从预设阻塞队列中取出待处理消息的线程设为等待状态,就可以使该线程暂时停止工作,即停止待处理消息的取出。
步骤S312,若预设线程池中有空闲线程,则通过空闲线程对所述待处理消息进行快速处理。
具体地,检测到线程池中有空余线程时,则表明目前线程池可以对待处理消息进行派送处理,因此负责从预设阻塞队列中取出待处理消息的线程取出待处理消息,并由线程池中的空余线程进行派送处理。
预设的线程池中是否有空余的线程,实际是当前对待处理消息是否还有多余的处理能力,如果检测到线程池中有空余的线程,则表明当前还有可以对新的待处理消息进行派送处理的能力,因此使用线程池中空余的线程对待处理消息进行并发式的处理,来快速完成待处理消息的派送处理。否则表明当前无法处理更多的待处理消息。如果无法处理更多新的待处理消息,则将负责从预设阻塞队列中取出待处理消息的线程设为等待状态,减少系统资源的消耗。
进一步的,步骤S312若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态的步骤之后包括:
步骤S313,持续对线程池进行检测,若检测到线程池中出现空闲线程,则将唤醒用以取出待处理消息的线程进行待处理消息的取出,并重复所述通过空闲线程对所述待处理消息进行快速处理的步骤。
具体地,线程池没有空闲线程只是一种暂时的状态,当线程池中的线程完成了工作后就会变成空闲状态的线程,而检测到线程池中出现了空闲状态的线程时,表明线程池又有了处理新的待处理消息的能力,因此将用来从预设组设队列中取出待处理消息的线程唤醒,使其进行待处理消息的取出,并且取出待处理消息后,重复线程池中的空闲线程对待处理消息进行快速处理的步骤。
线程池中是否有空闲线程是一种暂时的状态,而消息处理需要进行根据当前的状态随时进行不同的策略变换,因此当线程池中没有空闲线程时就暂停从预设阻塞队列中取出待处理消息(将对应的线程设为等待状态),而当线程池中又有了空闲线程时,则即可恢复待处理消息的取出与处理,从而使得消息处理变得更加灵活。
本发明还提供具有一种消息快速处理方法的智能终端。
本发明基于消息快速处理方法的智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息快速处理程序,所述消息快速处理程序被所述处理器执行时实现如上所述的消息快速处理方法步骤。
其中,在所述处理器上运行的消息快速处理程序被执行时所实现的方法可参照本发明消息快速处理方法各个实施例,在此不再赘述。
此外本发明实施例还提出一种计算机可读存储介质。
本发明计算机可读存储介质上存储有消息快速处理程序,所述消息快速处理程序被处理器执行时实现如上所述的消息快速处理方法的步骤。
其中,在所述处理器上运行的消息快速处理程序被执行时所实现的方法可参照本发明消息快速处理方法各个实施例,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,智能终端,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种消息快速处理方法,其特征在于,所述消息快速处理方法包括以下步骤:
检测系统消息队列中是否有临时储存的待处理消息;
将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存;
将预设阻塞队列中临时储存的的待处理消息通过并行的方式进行快速处理。
2.如权利要求1所述的消息快速处理方法,其特征在于,所述检测系统消息队列中是否有临时储存的待处理消息的步骤包括:
检测消息队列是否为空,若消息队列不为空,则判定消息队列中储存有待处理消息。
3.如权利要求2所述的消息快速处理方法,其特征在于,所述检测消息队列是否为空的步骤包括:
检测消息队列的剩余容量是否与预设最大容量相同,若不相同则判定消息队列不为空。
4.如权利要求1所述的消息快速处理方法,其特征在于,所述将消息队列中的待处理消息取出,并转入到预设阻塞队列中进行临时储存的步骤包括:
检测预设阻塞队列中是否具有空余容量,当若预设阻塞队列具有空余容量,将待处理消息转入预设阻塞队列。
5.如权利要求4所述的消息快速处理方法,其特征在于,所述当预设阻塞队列具有空余容量时,将待处理消息转入预设阻塞队列的步骤包括:
检测预设阻塞队列的当前容量,若当前容量小于等于预设空值容量,则判定预设阻塞队列无空余容量;
若当前容量大于预设空值容量,则判定预设阻塞队列有空余容量。
6.如权利要求1所述的消息快速处理方法,其特征在于,所述将预设阻塞队列中临时储存的的待处理消息通过并发的方式进行快速处理的步骤包括:
获取预设阻塞队列中的待处理消息,通过预设线程池对待处理消息进行快速处理。
7.如权利要求6所述的消息快速处理方法,其特征在于,所述通过预设线程池对待处理消息进行快速处理的步骤包括:
检测预设线程池中是否有空闲线程;
若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态;
若预设线程池中有空闲线程,则通过空闲线程对所述待处理消息进行快速处理。
8.如权利要求7所述的消息快速处理方法,其特征在于,所若预设线程池中没有空闲线程,则将用以取出待处理消息的线程设为等待状态步骤之后包括:
持续对预设线程池进行检测,若检测到预设线程池中出现空闲线程,则唤醒用以取出待处理消息的线程以进行待处理消息的取出,并重复所述通过空闲线程对所述待处理消息进行快速处理的步骤。
9.一种智能终端,其特征在于,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息快速处理程序,所述消息快速处理程序被所述处理器执行时实现如权利要求1至8中任一项所述的消息快速处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有消息快速处理程序,所述消息快速处理程序被处理器执行时实现如权利要求1至8中任一项所述的消息快速处理方法的步骤。
CN201711399456.XA 2017-12-21 2017-12-21 消息快速处理方法、智能终端以及计算机可读存储介质 Pending CN108052400A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711399456.XA CN108052400A (zh) 2017-12-21 2017-12-21 消息快速处理方法、智能终端以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711399456.XA CN108052400A (zh) 2017-12-21 2017-12-21 消息快速处理方法、智能终端以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN108052400A true CN108052400A (zh) 2018-05-18

Family

ID=62130715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711399456.XA Pending CN108052400A (zh) 2017-12-21 2017-12-21 消息快速处理方法、智能终端以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108052400A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419841A (zh) * 2021-08-24 2021-09-21 北京每日优鲜电子商务有限公司 消息调度方法、装置、电子设备和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188570A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 即时消息处理系统及方法
US20150026412A1 (en) * 2013-07-19 2015-01-22 Samsung Electronics Company, Ltd. Non-blocking queue-based clock replacement algorithm
CN106201705A (zh) * 2016-07-25 2016-12-07 东软集团股份有限公司 处理消息的方法及装置
CN107295045A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种消息处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188570A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 即时消息处理系统及方法
US20150026412A1 (en) * 2013-07-19 2015-01-22 Samsung Electronics Company, Ltd. Non-blocking queue-based clock replacement algorithm
CN107295045A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种消息处理方法及装置
CN106201705A (zh) * 2016-07-25 2016-12-07 东软集团股份有限公司 处理消息的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419841A (zh) * 2021-08-24 2021-09-21 北京每日优鲜电子商务有限公司 消息调度方法、装置、电子设备和计算机可读介质
CN113419841B (zh) * 2021-08-24 2021-11-23 北京每日优鲜电子商务有限公司 消息调度方法、装置、电子设备和计算机可读介质

Similar Documents

Publication Publication Date Title
CN107608785A (zh) 进程管理方法、移动终端及可读储存介质
CN109874365A (zh) 用于执行无线充电的设备及其方法
CN107276789A (zh) 日志上传方法、装置及计算机可读存储介质
CN107851422A (zh) 电子设备和电子设备中的显示控制方法
CN110149552A (zh) 一种视频流帧数据的处理方法及终端
CN107203960B (zh) 图像渲染方法及装置
CN108566312A (zh) 离线检测方法、装置及计算机可读存储介质
CN110795336A (zh) 应用程序的控制方法、装置、设备及可读存储介质
CN109814941A (zh) 一种应用启动方法、终端及计算机可读存储介质
KR102480895B1 (ko) 전자 장치 및 전자 장치의 동작 제어 방법
CN111078172B (zh) 一种显示流畅度的调整方法、装置、电子设备及存储介质
KR102607647B1 (ko) 전자 장치 및 전자 장치의 테더링 연결 방법
CN108846274A (zh) 一种安全验证方法、装置及终端
CN109343902A (zh) 音频处理组件的运行方法、装置、终端及存储介质
CN107391241A (zh) 应用快速启动方法、终端及计算机可读存储介质
CN110162418A (zh) 应用冷启动方法、移动终端及计算机可读存储介质
CN115079886B (zh) 二维码识别方法、电子设备以及存储介质
CN107908487A (zh) 任务控制管理方法、装置、设备及计算机可读存储介质
CN107506309A (zh) 终端及闪存数据写入方法和计算机可读存储介质
CN107239275A (zh) 应用运行方法、终端及计算机可读存储介质
CN110022948B (zh) 用于提供锻炼内容的移动装置和与其连接的可佩戴装置
CN113220176A (zh) 基于微件的显示方法、装置、电子设备及可读存储介质
CN108052400A (zh) 消息快速处理方法、智能终端以及计算机可读存储介质
CN104750553B (zh) 应用运行方法和装置
US10028217B2 (en) Method for power-saving in electronic device and electronic device thereof

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180518

RJ01 Rejection of invention patent application after publication