CN109413489A - 串行式的多线程弹幕分发方法、装置、设备和存储介质 - Google Patents

串行式的多线程弹幕分发方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN109413489A
CN109413489A CN201811152564.1A CN201811152564A CN109413489A CN 109413489 A CN109413489 A CN 109413489A CN 201811152564 A CN201811152564 A CN 201811152564A CN 109413489 A CN109413489 A CN 109413489A
Authority
CN
China
Prior art keywords
barrage
current
thread
distribution
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.)
Granted
Application number
CN201811152564.1A
Other languages
English (en)
Other versions
CN109413489B (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 CN201811152564.1A priority Critical patent/CN109413489B/zh
Publication of CN109413489A publication Critical patent/CN109413489A/zh
Application granted granted Critical
Publication of CN109413489B publication Critical patent/CN109413489B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种串行式的多线程弹幕分发方法、装置、设备和存储介质。该方法包括:在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。通过上述技术方案,实现了顺序且高效地分发弹幕消息,提高了弹幕消息的分发时效性和分发准确性。

Description

串行式的多线程弹幕分发方法、装置、设备和存储介质
技术领域
本发明实施例涉及信息通信技术,尤其涉及一种串行式的多线程弹幕分发方法、装置、设备和存储介质。
背景技术
在音视频播放/直播应用软件中会大量使用弹幕消息。通常,弹幕消息是由传输及处理弹幕消息的服务器(即弹幕服务器)发送至应用软件,再由应用软件中具有分发弹幕消息功能的弹幕分发模块将接收的弹幕消息分发至各个需要接收弹幕消息的弹幕接收模块。
当弹幕服务器发送的弹幕消息的数量较多,而弹幕分发模块无法及时进行弹幕消息的分发时,通常会在弹幕分发模块中建立一个消息集合,以存储未分发的弹幕消息。
但是,现有的弹幕消息分发模式是弹幕分发模块按照弹幕服务器下发弹幕消息的顺序,逐条从消息缓存集合中获取缓存的弹幕消息并进行分发,这就会导致弹幕分发模块的分发效率低,降低弹幕消息的分发时效性。
发明内容
本发明实施例提供一种串行式的多线程弹幕分发方法、装置、设备和存储介质,以实现顺序且高效地分发弹幕消息,提高弹幕消息的分发时效性和分发准确性。
第一方面,本发明实施例提供了一种串行式的多线程弹幕分发方法,包括:
在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
第二方面,本发明实施例还提供了一种串行式的多线程弹幕分发装置,该装置包括:
当前并发数量确定模块,用于在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
弹幕消息及线程确定模块,用于从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
弹幕消息分发模块,用于基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的串行式的多线程弹幕分发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的串行式的多线程弹幕分发方法。
本发明实施例通过在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息并行分发的数量,实现了在利用弹幕消息并行分发技术提高弹幕消息分发效率的基础上,有效降低因系统繁忙而导致弹幕消息并行分发进程的阻塞程度,进一步提高了弹幕消息的分发效率和分发时效性。通过基于预设线程串行执行机制,利用各分发线程串行式分发各待分发弹幕消息,保证了多线程弹幕分发过程中弹幕消息的分发顺序性,在提高弹幕消息分发效率的基础上,提高了弹幕消息的分发准确性。
附图说明
图1是本发明实施例一中的一种串行式的多线程弹幕分发方法的流程图;
图2是本发明实施例二中的一种串行式的多线程弹幕分发方法的流程图;
图3是本发明实施例三中的一种串行式的多线程弹幕分发装置的结构示意图;
图4是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的串行式的多线程弹幕分发方法可适用于Android客户端中的音视频播放/直播应用软件中的弹幕消息分发,尤其适用于在弹幕消息数量较多,且一条弹幕消息发送至至少一个弹幕接收对象的情况。该方法可以由串行式的多线程弹幕分发装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在搭载Android系统的具有弹幕消息分发功能的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。本实施例中的执行主体为弹幕分发模块中定义的,用于实现弹幕分发功能的弹幕分发类的实例化对象——弹幕分发对象。参见图1,本实施例的方法具体包括如下步骤:
S110、在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量。
其中,多线程弹幕分发条件是指预先设定的,用于触发弹幕消息多线程并行分发的条件,例如可以是新的弹幕消息的接收,也可以是弹幕消息分发进度,还可以是设置定时器等。系统状态参数是指能够表征系统运行状态的参数。当前系统状态参数值是指当前时刻的系统状态参数的值。示例性地,当前系统状态参数包括当前CPU占用率、当前内存占用率和当前系统温度中的至少一种。具体实施时,可以利用当前CPU占用率、当前内存占用率和当前系统温度中的至少一种来表征搭载Android系统的设备的运行状态。这样设置的好处在于可以从至少一个角度反映当前系统的繁忙程度。当前并发数量是指当前时刻的并行分发的弹幕消息的数量。
具体地,弹幕分发对象首先判断是否满足多线程弹幕分发条件,例如,判断其是否接收到弹幕服务器发送的新的弹幕消息,或者判断其是否将上一批弹幕消息分发完毕,或者判断设置的定时器的定时周期是否到达等。如果判断结果为是,那说明已经满足了多线程弹幕分发条件,弹幕分发对象便会获取当前系统状态参数值。如果当前系统状态参数值较高,则表明系统当前功耗较大,无法承担过多的并行弹幕消息分发任务,此时便可将当前并发数量设置为一个较小的数值;反之,表明系统的当前可用资源丰富,便可将当前并发数量设置为一个较大的数值。
本实施例中可以将系统状态参数值与弹幕消息的并发数量的对应关系设置为具有离散数值的查找表,以存储系统状态参数值的各个取值范围及每个取值范围对应的并发数量。那么,上述依据当前系统状态参数值确定弹幕消息的当前并发数量的过程便为:根据当前系统状态参数值确定出其对应的取值范围,之后将查找表中该取值范围对应的并发数量确定为当前并发数量。这样设置的好处在于当前并发数量的确定速度快,可进一步提高弹幕消息的分发效率。
本实施例中也可以将系统状态参数值与弹幕消息的并发数量的对应关系设置为数值计算公式,将系统状态参数值设置为因变量,而将并发数量设置为应变量。后续便可以直接根据当前系统状态参数值计算获得相应的当前并发数量。这样设置的好处在于,可以更加精确的确定当前并发数量,从而后续确定更加合适数量的并发线程,可进一步减少线程阻塞的情况,进而进一步提高弹幕消息的分发效率。
S120、从消息集合中获取当前并发数量的待分发弹幕消息,并确定当前并发数量的分发线程。
其中,消息集合是指弹幕分发对象中存储弹幕消息的集合,其数据结构可以是数组、列表或队列等。为了更好地保证弹幕消息的存储顺序及获取顺序,消息集合优选为具有先进先出特性的队列结构。本发明实施例中,为了实现弹幕消息的并行分发,弹幕分发对象在接收到弹幕服务器下发的弹幕消息时,并不是立即将其分发,而是将其存储至消息集合中。待分发弹幕消息是指本操作中要进行分发的弹幕消息。分发线程是指本操作中需要专门用来进行弹幕消息分发的线程。
具体地,当执行S110确定了当前并发数量之后,弹幕分发对象便从消息集合中按序获取当前并发数量的弹幕消息,作为待分发弹幕消息。
另外,弹幕分发对象从对系统中的所有线程进行动态管理的线程池获取当前并发数量的线程,作为分发线程。或者,弹幕分发对象按照如下方式确定当前并发数量的目标线程:获取已开辟线程的第一线程数量,并比较当前并发数量与第一线程数量;若当前并发数量大于第一线程数量,则依据当前并发数量和第一线程数量开辟第二线程数量的新开辟线程,并将已开辟线程和新开辟线程确定为目标线程;若当前并发数量等于第一线程数量,则将已开辟线程确定为目标线程;若当前并发数量小于第一线程数量,则从已开辟线程中随机确定当前并发数量的线程,作为目标线程。这样设置的好处在于充分利用已开辟线程,减少线程开辟与释放的次数,从而减少系统功耗。
需要说明的是,本步骤中确定待分发弹幕消息的操作和确定分发线程的操作无执行顺序的限定,两者可以先后执行,也可以同步执行。
之后,弹幕分发对象为每个待分发弹幕消息分配一个分发线程,该分配过程中需要保证一个分发线程对应有一个待分发弹幕消息,且各个分发线程对应的待分发弹幕消息不重复。后续便可利用各个分发线程来分发各个待分发弹幕消息。
S130、基于预设线程串行执行机制,利用各分发线程串行式分发各待分发弹幕消息。
其中,预设线程串行执行机制是指各个线程串行式执行的实现机制,例如可以是串行执行顺序和/或线程串行执行条件等。该线程串行执行条件是表征线程被触发运行的触发条件,例如可以是各个线程开始运行的时间差值(即线程间时延),也可以是预先定义的一个全局作用域的线程控制对象中的线程控制变量值为表征线程可运行的标识(即预设运行标识),还可以是上一个线程发送的线程运行通知消息等。
具体地,弹幕分发对象根据预设线程串行执行机制确定各个分发线程的线程串行式执行顺序。并且,根据预设线程串行执行机制中的线程串行执行条件,确定各个分发线程的运行触发条件。之后,在顺次判断每个分发线程达到线程串行执行条件时,利用该分发线程分发其对应的待分发弹幕消息。以此方式来实现各个待分发弹幕消息的串行式分发。
示例性地,基于预设线程串行执行机制,利用各分发线程串行式分发各待分发弹幕消息包括:A、依据各待分发弹幕消息的消息排序,将第一个待分发弹幕消息确定为当前弹幕消息,并将当前弹幕消息对应的分发线程确定为当前线程;B、基于弹幕消息分发机制,在满足线程串行执行条件时利用当前线程分发当前弹幕消息;C、在当前弹幕消息不为最后一个待分发弹幕消息时,将当前弹幕消息更新为下一个待分发弹幕消息,且将当前线程更新为下一个分发线程,并返回执行在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息的操作。
其中,消息排序是指弹幕消息的排列顺序,其可以是弹幕服务器下发弹幕消息的顺序,也可以是消息集合中弹幕消息的存储顺序等。弹幕消息分发机制是指弹幕分发对象向弹幕接收对象分发弹幕消息的实现机制。例如当弹幕分发对象和弹幕接收对象处于同一个功能模块时,弹幕消息分发机制可以是通过弹幕分发对象和弹幕接收对象之间的直接对象引用来进行弹幕消息分发。而当弹幕分发对象和弹幕接收对象处于不同功能模块时,弹幕消息分发机制可以是通过不同功能模块提供的模块间交互接口来建立弹幕分发对象和弹幕接收对象之间的耦合式通信通道,弹幕分发对象通过该耦合式通信通道将弹幕消息直接分发至相应的弹幕接收对象;也可以是通过自定义接口类型的通信协议建立弹幕分发对象和弹幕接收对象之间的桥接式通信通道,弹幕分发对象通过该桥接式通信通道将弹幕消息直接分发至相应的弹幕接收对象;还可以是通过Android系统中的系统通信通道,如系统广播通道或第三方开源事件总线EventBus,进行弹幕消息的传输。
具体地,根据上述说明可知,串行式分发过程为顺序性分发,且每次分发过程相同,故将串行式分发过程设置为一个循环过程,以简化程序开发过程。具体实施时,弹幕分发对象先根据各个待分发弹幕消息的消息排序,将其中的第一个待分发弹幕消息作为当前弹幕消息,并将当前弹幕消息对应的分发线程作为当前线程。可以理解,当前弹幕消息和当前线程均是循环过程中的循环变量。之后,弹幕分发对象判断当前线程是否满足线程串行执行条件。若否,则需要等到其满足该线程串行执行条件后再启动运行。若是,则当前线程由等待状态切换为唤醒状态,此时,弹幕分发对象便可基于弹幕消息分发机制,利用该当前线程分发该当前弹幕消息。
当前弹幕消息分发之后,弹幕分发对象判断当前弹幕消息是否为当前并发数量的待分发弹幕消息中的最后一个待分发弹幕消息。若是,则表明所有的待分发弹幕消息分发完毕,结束该循环过程。若否,则弹幕分发对象按照消息排序,将下一个待分发弹幕消息作为新的当前弹幕消息,且将下一个待分发弹幕消息对应的发放线程作为新的当前线程,实现当前弹幕消息和当前线程的更新操作,并返回执行B步骤的操作,形成待分发弹幕消息分发的循环过程。
本实施例中之所以将各个待分发弹幕消息利用不同的分发线程分发,是为了一定程度上提高弹幕消息的分发效率和分发时效性。对于目前Android客户端搭载多核处理器的硬件条件而言,如果仅利用一个单线程顺序性分发各个待分发弹幕消息,那么第一,Android系统会一直调度同一个处理器核,使得各个处理器核的负载差异较大,而多个单线程会调度各个处理器核,使得系统功耗相对降低;第二,一个单线程所能分配的系统资源有限,必然会降低顺序性分发的各个待分发弹幕消息的分发速度,而多个单线程可同时分配较多的系统资源,提高每个待分发弹幕消息的分发速度;第三,一个单线程执行多条待分发弹幕消息的分发操作,必然会在一条待分发弹幕消息分发完毕后,进行该条弹幕消息的信息释放,如果释放不及时或不彻底,则会影响后续待分发弹幕消息的正确分发,而多个单线程之间的待分发弹幕消息不会相互影响,提高了弹幕消息分发的正确性。
本实施例中之所以将各个分发线程设置为串行式分发,是考虑到弹幕消息具有顺序性的特性,例如一条弹幕消息的处理依赖于另一条弹幕消息的处理结果,那么弹幕消息分发时,就应该先分发该另一条弹幕消息而后分发该条弹幕消息。所以,为了保持弹幕消息的顺序性,将各个分发线程设置为按照弹幕消息的顺序串行式分发。
本实施例的技术方案,通过在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息并行分发的数量,实现了在利用弹幕消息并行分发技术提高弹幕消息分发效率的基础上,有效降低因系统繁忙而导致弹幕消息并行分发进程的阻塞程度,进一步提高了弹幕消息的分发效率和分发时效性。通过基于预设线程串行执行机制,利用各分发线程串行式分发各待分发弹幕消息,保证了多线程弹幕分发过程中弹幕消息的分发顺序性,在提高弹幕消息分发效率的基础上,提高了弹幕消息的分发准确性。
实施例二
本实施例在上述实施例一的基础上,对“满足多线程弹幕分发条件”进行了进一步优化。在此基础上,还可以进一步对“依据当前系统状态参数值确定弹幕消息的当前并发数量”进行优化。在上述基础上,还可以进一步对“基于预设线程串行执行机制,利用各分发线程串行式分发各待分发弹幕消息”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。本实施例的执行主体仍为弹幕分发对象。参见图2,本实施例提供的串行式的多线程弹幕分发方法包括:
S201、在消息并发定时器的当前定时周期到达时,依据当前CPU占用率和预先设定的并发数量求解公式确定当前并发数量。
其中,消息并发定时器是用于触发弹幕消息多线程并行分发的定时器。当前定时周期是指当前时刻消息并发定时器的定时时长,其可以是预先设置的固定数值的时长(即预设时长),也可以是依据设定调整规则动态调整的动态时长。示例性地,当前定时周期依据当前并发数量的上一个历史并发数量确定。历史并发数量是指当前时刻之前的历史时刻的并发数量,其与当前并发数量相对应。上一个历史并发数量是指与当前时刻最接近的历史时刻的并发数量。具体实施时,在上一个历史并发数量确定之后,便可据其确定当前定时周期。本实施例中将当前定时周期与上一个历史并发数量的关系设定为负相关关系,如果上一个历史并发数量较大,则说明当前可用系统资源丰富,可以认为弹幕消息的分发速度较快,那么可以设置一个时长较短的当前定时周期,以便更加及时地分发各个弹幕消息;反之,设置一个时长较长的当前定时周期,以确保上一批并行分发的弹幕消息能够分发完毕,避免因多批弹幕消息并行分发而导致的系统功耗过大。当前定时周期是一次分发过程调整一次,且是S110执行之前便确定。这样设置的好处在于能够根据当前系统运行状态动态地确定消息并发定时器的当前定时周期,从而更加精确地触发弹幕消息的并行分发,进一步提高弹幕消息的分发效率和时效性。
具体地,弹幕分发对象首先判断消息并发定时器的当前定时周期是否达到。在判断达到时,弹幕分发对象获取Android系统的当前CPU占用率。之后,弹幕分发对象根据当前CPU占用率与当前并发数量之间的并发数量求解公式计算当前并发数量。该并发数量求解公式具体为:
ParaNum=10-(int)(CpuOcRate*100/10)
该公式中ParaNum为当前并发数量,int为取整关键字,CpuOcRate为当前CPU占用率。该公式的构建依据是:为了避免一次开辟的线程数量过多,本实施例中将一次开辟的线程数量最大值设置为10,也就是系统可用资源允许的情况下,最多一次可并行分发10条弹幕消息。然后,将百分比形式的当前并发数量CpuOcRate变为实数,即CpuOcRate*100;之后,为了确保最终确定的并发数量为小于或等于10的数值,而取上述获得的实数的十位及以上的数值,即CpuOcRate*100/10;同时为了确保计算结果为整数,利用int取整关键字对上述结果再向下取整。最后,为了使CPU占用率与并发数量呈负相关,从而符合S110中的相关说明,用并发数量最大值10与取整后结果做差。
S202、从消息集合中获取当前并发数量的待分发弹幕消息,以及确定当前并发数量的分发线程。
S203、依据各待分发弹幕消息的消息排序,将第一个待分发弹幕消息确定为当前弹幕消息,并将当前弹幕消息对应的分发线程确定为当前线程。之后执行S204或S205。
S204、在检测到线程间时延到达时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息。
具体地,将线程串行执行条件设置为线程间时延Δt,那么满足线程串行执行条件便为线程间时延到达。例如,上一个分发线程开始分发弹幕消息的系统时间为t1,那么弹幕分发对象检测到当前系统时间到达t1+Δt时,当前线程便被唤醒,弹幕分发对象便可利用当前线程分发当前弹幕消息。之后,执行S207。
S205、在检测到线程控制对象中的线程控制变量值为预设运行标识时,将线程控制变量值设置为预设等待标识,且基于弹幕消息分发机制,利用当前线程分发当前弹幕消息。
具体地,将线程串行执行条件设置为线程控制对象key中的线程控制变量值,那么满足线程串行执行条件便为线程控制变量值为预设运行标识(例如1)。例如,弹幕分发对象将线程控制对象key中的线程控制变量值设置为预设运行标识1,那么当前线程获取该线程控制变量值时便获取到预设运行标识1,则将线程状态切换为唤醒状态。弹幕分发对象便可以利用当前线程来分发当前弹幕消息。
在当前线程获取线程控制变量值后,弹幕分发对象便及时将线程控制变量值设置为诸如0的预设等待标识,防止其他处于等待状态的分发线程获取到预设运行标识1而与当前线程同时切换为唤醒状态,从而避免打乱待分发弹幕消息的分发顺序。
S206、将线程控制变量值设置为预设运行标识,并调用线程控制对象的单线程唤醒函数,触发当前弹幕消息的下一个待分发弹幕消息对应的下一个分发线程获取线程控制变量值。
具体地,当前线程分发完毕当前弹幕消息后,便释放线程控制对象,将线程控制对象中的线程控制变量值设置为预设运行标识,以使其他分发线程可以获取该值并唤醒该其他分发线程。
由于除当前线程之外的其他分发线程在第一次获取线程控制变量值为预设等待标识后,便一直处于等待状态,且其在无任何触发操作的情况下不会再次读取线程控制变量值,故需要调用线程控制对象的单线程唤醒函数notify(),来触发当前线程的下一个分发线程再次去获取线程控制变量值,以确定该下一个分发线程是否切换状态。之后,执行S207。
S207、判断当前弹幕消息是否为最后一个待分发弹幕消息。若是,则确定所有的待分发弹幕消息分发完毕,结束循环操作;若否,则执行S208。
S208、将当前弹幕消息更新为下一个待分发弹幕消息,且将当前线程更新为下一个分发线程,并根据S207之前的操作步骤,返回执行S204或S205。
具体地,在S207判断需要继续执行串行式分发循环操作时,弹幕分发对象便需要更新当前弹幕消息和当前线程,更新过程参见实施例一的S130中的相关说明。更新操作执行后,若S207之前的操作为S204,则返回执行S204;若S207之前的操作为S206,则返回执行S205。
应当理解,S204和S205~S206为并列步骤,可以根据具体应用需求,择一执行。
本实施例的技术方案,通过将多线程弹幕分发条件设置为消息并发定时器的当前定时周期到达,使得弹幕消息并行分发的触发条件更加常态化,避免了因触发条件无法满足而使得弹幕消息无法及时分发的问题,进一步提高弹幕消息分发的时效性。通过将当前系统状态参数值确定为当前CPU占用率,并利用当前CPU占用率与当前并发数量之间的并发数量求解公式确定当前并发数量,提高了当前并发数量确定的准确性,从而进一步提高弹幕消息分发效率。通过将线程串行执行条件设置为线程间时延,简化了弹幕消息串行式分发的实现逻辑。通过将线程串行执行条件设置为线程控制对象中的线程控制变量值,并设置线程控制对象的单线程唤醒函数来触发下一个分发线程获取线程控制变量值,实现了各个分发线程之间严格的串行式分发,在提高弹幕消息分发效率的基础上,进一步提高了弹幕消息分发准确性。
在上述技术方案的基础上,所述弹幕消息分发机制包括:依据弹幕消息的消息标识,从引用对象集合中获取与所述消息标识对应的目标弹幕接收对象;依据所述弹幕分发协议,将所述目标弹幕接收对象转换为弹幕分发协议类型的对象,作为目标接收对象;以所述弹幕消息为函数输入参数,通过所述目标接收对象调用弹幕分发函数,将所述弹幕消息分发至所述目标接收对象。
其中,引用对象集合是指存储各个弹幕接收对象引用关系的集合,其设置于弹幕分发对象中。为了从引用对象集合中获取所需要的弹幕接收对象,引用对象集合中还可以存储用于查找集合元素的索引项,例如弹幕消息的消息标识,和/或弹幕接收对象的哈希值。弹幕接收对象是指弹幕接收模块中需要接收弹幕消息的组件对象,例如可以是用于弹幕消息显示的视图对象,也可以是用于对弹幕消息进行数据处理的业务控制器对象,还可以是对弹幕消息进行存储或传输的数据管理器对象。
示例性地,对象集合存储继承了预先定义的弹幕分发协议的弹幕接收对象。弹幕分发协议是指弹幕分发对象进行弹幕分发时所遵循的组件间通信协议,其内包含用于实现弹幕消息分发的弹幕分发函数。该弹幕分发协议是具有公有权限标识符public的接口interface类型的协议。例如,弹幕分发协议IMessage可以定义为:public interfaceIMessage{public void onMessage(String type,Message msg);}。该协议定义中,弹幕分发函数onMessage具有两个函数输入参数,分别是字符串String类型的消息标识和承载弹幕消息的消息Message类型的消息体。该函数的函数输入参数可以根据实际应用需求进行适应性调整。
本实施例中弹幕分发对象和弹幕接收对象处于不同功能模块,故将弹幕消息分发机制设置为建立弹幕分发对象和弹幕接收对象之间的桥接式通信通道。具体实施时,预先定义一个全局作用域的应用对象集合以及包含弹幕分发函数的弹幕分发协议。弹幕接收类通过Java语言中的接口协议继承关键字implement继承该弹幕分发协议,并实现其内的弹幕分发函数。然后,在各个弹幕接收对象创建时,通过调用弹幕接收类的构造函数实例化生成各个弹幕接收对象,该弹幕接收对象同时也是协议接收对象,其内包含作为回调函数的弹幕分发函数OnMessage。在各个弹幕接收对象创建之后,将其存储至上述引用对象集合中,这样弹幕分发对象便可通过引用对象集合持有各个弹幕接收对象的引用关系,至此便构建了上述桥接式通信通道。
具体地,当弹幕分发对象需要进行弹幕消息分发时,其会先根据要分发的弹幕消息的消息标识从对象集合中确定出要接收该弹幕消息的弹幕接收对象,即目标弹幕接收对象。之后,为了后续调用目标弹幕接收对象时仅利用其继承而获得的通信功能,而不会调用弹幕接收对象内部的相应消息处理功能,根据弹幕分发协议对应的弹幕分发协议类型,将目标弹幕接收对象强制转换为弹幕分发协议类型,获得仅具有弹幕分发协议的通信功能的接收协议对象,将其作为目标接收对象。之后,弹幕分发对象以弹幕消息为函数输入参数,通过目标接收对象调用其内的弹幕分发函数,以触发目标接收对象回调相应的弹幕分发函数,从而接收弹幕分发对象作为函数输入参数发送的弹幕消息。这样设置的好处在于建立了弹幕分发对象和弹幕接收对象之间专门用于弹幕消息分发的通信通道,进一步提高弹幕消息的分发效率。
以下是本发明实施例提供的串行式的多线程弹幕分发装置的实施例,该装置与上述各实施例的串行式的多线程弹幕分发方法属于同一个发明构思,在串行式的多线程弹幕分发装置的实施例中未详尽描述的细节内容,可以参考上述串行式的多线程弹幕分发方法的实施例。
实施例三
本实施例提供一种串行式的多线程弹幕分发装置,参见图3,该装置具体包括:
当前并发数量确定模块310,用于在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
弹幕消息及线程确定模块320,用于从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
弹幕消息分发模块330,用于基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
可选地,弹幕消息分发模块330包括:
当前弹幕及线程确定子模块,用于依据各所述待分发弹幕消息的消息排序,将第一个待分发弹幕消息确定为当前弹幕消息,并将当前弹幕消息对应的所述分发线程确定为当前线程;
当前弹幕分发子模块,用于在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息;
循环子模块,用于在当前弹幕消息不为最后一个所述待分发弹幕消息时,将当前弹幕消息更新为下一个所述待分发弹幕消息,且将当前线程更新为下一个所述分发线程,并返回执行在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息的操作。
其中,当前弹幕分发子模块具体用于:
在检测到线程间时延到达时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息。
可替代地,当前弹幕分发子模块具体用于:在检测到线程控制对象中的线程控制变量值为预设运行标识时,将所述线程控制变量值设置为预设等待标识,且基于弹幕消息分发机制,利用当前线程分发当前弹幕消息;
将所述线程控制变量值设置为所述预设运行标识,并调用所述线程控制对象的单线程唤醒函数,触发当前弹幕消息的下一个所述待分发弹幕消息对应的下一个所述分发线程获取所述线程控制变量值。
可选地,所述弹幕消息分发机制包括:
依据弹幕消息的消息标识,从引用对象集合中获取与所述消息标识对应的目标弹幕接收对象,其中,所述引用对象集合存储继承了预先定义的弹幕分发协议的弹幕接收对象,所述弹幕分发协议为具有公有权限标识符的接口类型的协议;
依据所述弹幕分发协议,将所述目标弹幕接收对象转换为弹幕分发协议类型的对象,作为目标接收对象;
以所述弹幕消息为函数输入参数,通过所述目标接收对象调用弹幕分发函数,将所述弹幕消息分发至所述目标接收对象,其中,所述弹幕分发函数为所述弹幕分发协议的内部函数。
可选地,所述满足多线程弹幕分发条件包括:消息并发定时器的当前定时周期到达,其中,所述当前定时周期依据所述当前并发数量的上一个历史并发数量确定。
可选地,当前并发数量确定模块310具体用于:
当所述系统状态参数为所述当前CPU占用率时,依据所述当前CPU占用率和预先设定的并发数量求解公式确定所述当前并发数量。
通过本发明实施例三的一种串行式的多线程弹幕分发装置,实现了顺序且高效地分发弹幕消息,提高了弹幕消息的分发时效性和分发准确性。
本发明实施例所提供的串行式的多线程弹幕分发装置可执行本发明任意实施例所提供的串行式的多线程弹幕分发方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述串行式的多线程弹幕分发装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
参见图4,本实施例提供了一种设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420执行,使得所述一个或多个处理器420实现本发明实施例所提供的串行式的多线程弹幕分发方法,包括:
在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
当然,本领域技术人员可以理解,处理器420还可以实现本发明任意实施例所提供的串行式的多线程弹幕分发方法的技术方案。
图4显示的设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图4所示,该设备400包括处理器420、存储装置410、输入装置430和输出装置440;设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的串行式的多线程弹幕分发方法对应的程序指令/模块(例如,串行式的多线程弹幕分发装置中的当前并发数量确定模块、弹幕消息及线程确定模块和弹幕消息分发模块)。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种串行式的多线程弹幕分发方法,该方法包括:
在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的串行式的多线程弹幕分发方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的串行式的多线程弹幕分发方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种串行式的多线程弹幕分发方法,其特征在于,包括:
在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
2.根据权利要求1所述的方法,其特征在于,基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息包括:
依据各所述待分发弹幕消息的消息排序,将第一个待分发弹幕消息确定为当前弹幕消息,并将当前弹幕消息对应的所述分发线程确定为当前线程;
在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息;
在当前弹幕消息不为最后一个所述待分发弹幕消息时,将当前弹幕消息更新为下一个所述待分发弹幕消息,且将当前线程更新为下一个所述分发线程,并返回执行在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息的操作。
3.根据权利要求2所述的方法,其特征在于,在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息包括:
在检测到线程间时延到达时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息。
4.根据权利要求2所述的方法,其特征在于,在满足线程串行执行条件时,基于弹幕消息分发机制,利用当前线程分发当前弹幕消息包括:
在检测到线程控制对象中的线程控制变量值为预设运行标识时,将所述线程控制变量值设置为预设等待标识,且基于弹幕消息分发机制,利用当前线程分发当前弹幕消息;
将所述线程控制变量值设置为所述预设运行标识,并调用所述线程控制对象的单线程唤醒函数,触发当前弹幕消息的下一个所述待分发弹幕消息对应的下一个所述分发线程获取所述线程控制变量值。
5.根据权利要求2~4任一项所述的方法,其特征在于,所述弹幕消息分发机制包括:
依据弹幕消息的消息标识,从引用对象集合中获取与所述消息标识对应的目标弹幕接收对象,其中,所述引用对象集合存储继承了预先定义的弹幕分发协议的弹幕接收对象,所述弹幕分发协议为具有公有权限标识符的接口类型的协议;
依据所述弹幕分发协议,将所述目标弹幕接收对象转换为弹幕分发协议类型的对象,作为目标接收对象;
以所述弹幕消息为函数输入参数,通过所述目标接收对象调用弹幕分发函数,将所述弹幕消息分发至所述目标接收对象,其中,所述弹幕分发函数为所述弹幕分发协议的内部函数。
6.根据权利要求1所述的方法,其特征在于,所述满足多线程弹幕分发条件包括:消息并发定时器的当前定时周期到达,其中,所述当前定时周期依据所述当前并发数量的上一个历史并发数量确定。
7.根据权利要求1所述的方法,其特征在于,所述依据当前系统状态参数值确定弹幕消息的当前并发数量包括:
当所述系统状态参数为所述当前CPU占用率时,依据所述当前CPU占用率和预先设定的并发数量求解公式确定所述当前并发数量。
8.一种串行式的多线程弹幕分发装置,其特征在于,包括:
当前并发数量确定模块,用于在满足多线程弹幕分发条件时,依据当前系统状态参数值确定弹幕消息的当前并发数量;
弹幕消息及线程确定模块,用于从消息集合中获取所述当前并发数量的待分发弹幕消息,并确定所述当前并发数量的分发线程;
弹幕消息分发模块,用于基于预设线程串行执行机制,利用各所述分发线程串行式分发各所述待分发弹幕消息。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的串行式的多线程弹幕分发方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的串行式的多线程弹幕分发方法。
CN201811152564.1A 2018-09-29 2018-09-29 串行式的多线程弹幕分发方法、装置、设备和存储介质 Active CN109413489B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811152564.1A CN109413489B (zh) 2018-09-29 2018-09-29 串行式的多线程弹幕分发方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811152564.1A CN109413489B (zh) 2018-09-29 2018-09-29 串行式的多线程弹幕分发方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109413489A true CN109413489A (zh) 2019-03-01
CN109413489B CN109413489B (zh) 2021-02-02

Family

ID=65465718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811152564.1A Active CN109413489B (zh) 2018-09-29 2018-09-29 串行式的多线程弹幕分发方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109413489B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127220A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 一种数据下发方法、装置及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188570A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 即时消息处理系统及方法
CN101882089A (zh) * 2009-05-07 2010-11-10 中兴通讯股份有限公司 一种采用多线程处理业务会话应用的方法及装置
CN102902512A (zh) * 2012-08-31 2013-01-30 浪潮电子信息产业股份有限公司 一种基于多线程编程及消息队列的多线程并行处理方法
US20140007054A1 (en) * 2012-06-27 2014-01-02 Youfeng Wu Methods and systems to identify and reproduce concurrency violations in multi-threaded programs using expressions
US20160072908A1 (en) * 2014-09-09 2016-03-10 James Dinan Technologies for proxy-based multi-threaded message passing communication
CN105721176A (zh) * 2016-02-01 2016-06-29 四川长虹电器股份有限公司 海量设备即时消息通信方法及公共消息客户端管理方法
CN107193539A (zh) * 2016-03-14 2017-09-22 北京京东尚科信息技术有限公司 多线程并发处理方法和多线程并发处理系统
CN108153596A (zh) * 2017-12-15 2018-06-12 珠海金山网络游戏科技有限公司 一种基于无锁队列的消息处理方法和装置
CN108600852A (zh) * 2018-04-28 2018-09-28 北京酷我科技有限公司 一种弹幕效果的实现方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188570A (zh) * 2006-11-17 2008-05-28 鸿富锦精密工业(深圳)有限公司 即时消息处理系统及方法
CN101882089A (zh) * 2009-05-07 2010-11-10 中兴通讯股份有限公司 一种采用多线程处理业务会话应用的方法及装置
US20140007054A1 (en) * 2012-06-27 2014-01-02 Youfeng Wu Methods and systems to identify and reproduce concurrency violations in multi-threaded programs using expressions
CN102902512A (zh) * 2012-08-31 2013-01-30 浪潮电子信息产业股份有限公司 一种基于多线程编程及消息队列的多线程并行处理方法
US20160072908A1 (en) * 2014-09-09 2016-03-10 James Dinan Technologies for proxy-based multi-threaded message passing communication
CN105721176A (zh) * 2016-02-01 2016-06-29 四川长虹电器股份有限公司 海量设备即时消息通信方法及公共消息客户端管理方法
CN107193539A (zh) * 2016-03-14 2017-09-22 北京京东尚科信息技术有限公司 多线程并发处理方法和多线程并发处理系统
CN108153596A (zh) * 2017-12-15 2018-06-12 珠海金山网络游戏科技有限公司 一种基于无锁队列的消息处理方法和装置
CN108600852A (zh) * 2018-04-28 2018-09-28 北京酷我科技有限公司 一种弹幕效果的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CAPTAINJNO: "多线程之串行实现", 《简书》 *
沙晗等: "基于并串结合机制的数据竞争消除系统设计与实现", 《微电子学与计算机》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127220A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 一种数据下发方法、装置及电子设备
CN113127220B (zh) * 2019-12-31 2023-03-14 深圳云天励飞技术有限公司 一种数据下发方法、装置及电子设备

Also Published As

Publication number Publication date
CN109413489B (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN109413502B (zh) 多线程弹幕消息分发方法、装置、设备及存储介质
CN110858843B (zh) 业务请求处理方法、装置及计算机可读存储介质
CN106557369B (zh) 一种多线程的管理方法及系统
CN111367693B (zh) 基于消息队列调度插件任务的方法、系统、设备及介质
CN109492018A (zh) 一种数据同步系统自适应动态调整方法和装置
CN103873587A (zh) 一种基于云平台实现调度的方法及装置
CN113424256A (zh) 在可再充电设备上的播送请求和/或用户输入的自适应管理
CN109413489A (zh) 串行式的多线程弹幕分发方法、装置、设备和存储介质
CN109062650B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109309848B (zh) 基于重试机制的弹幕分发方法、装置、设备及存储介质
CN110275780B (zh) 用于限制流量的方法和装置
US20130115992A1 (en) Method and apparatus for controlling wireless devices
CN111897659B (zh) 业务处理频率的控制方法、系统、装置、电子设备
CN109379605B (zh) 基于弹幕顺序的弹幕分发方法、装置、设备和存储介质
CN109246470A (zh) 多线程同步的弹幕分发方法、装置、设备及存储介质
CN108810645B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN113436056B (zh) 渲染方法、装置、电子设备及存储介质
CN115412500B (zh) 支持负载均衡策略的异步通信方法、系统、介质及设备
CN116909729A (zh) Gpu多任务调度方法
CN113867831B (zh) 智能设备控制方法、智能设备、存储介质及电子设备
CN113098793B (zh) 分布式服务系统限流方法及分布式服务系统
CN106919488B (zh) 应用程序的响应状态的确定方法及装置
CN109086107B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109005465A (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109361953B (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