1.一种线程消息处理方法,其特征在于,应用于电子设备,所述电子设备包括第一消息订阅者线程订阅的多个主题的多个消息总线、就绪线程队列以及与所述多个消息总线一一对应的多个等待线程队列,所述方法包括:
获取所述就绪线程队列中当前需要处理的所述第一消息订阅者线程;
检测所述多个消息总线中是否存在所述第一消息订阅者线程的消息;
若是,则调用所述第一消息订阅者线程读取检测到的消息;
若否,则移除所述就绪队列中的所述第一消息订阅者线程,并在所述多个等待线程队列的每个等待线程队列插入所述第一消息订阅者线程。
2.根据权利要求1所述的方法,其特征在于,所述检测所述多个消息总线中是否存在所述第一消息订阅者线程的消息,包括:
遍历所述多个消息总线中的每个消息总线,确定是否存在所述第一消息订阅者线程的消息。
3.根据权利要求2所述的方法,其特征在于,所述调用所述第一消息订阅者线程读取检测到的消息,包括:
确定通过遍历查询到的所述第一消息订阅者线程的未读取的所有消息;
调用所述第一消息订阅者线程读取所述所有消息。
4.根据权利要求1所述的方法,其特征在于,所述检测所述多个消息总线中是否存在所述第一消息订阅者线程的消息,包括:
获取所述第一消息订阅者线程订阅的所述多个主题的多个消息链表,所述多个主题与所述多个消息链表一一对应,消息链表用于存储对应的主题的消息总线中插入的所述第一消息订阅者线程的未被读取的消息;
检测所述多个消息链表中是否存在所述第一消息订阅者线程的消息。
5.根据权利要求4所述的方法,其特征在于,所述调用所述第一消息订阅者线程读取检测到的消息,包括:
获取检测到的消息所属的目标消息链表;
读取所述目标消息链表中的所有消息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述获取所述就绪线程队列中当前需要处理的第一消息订阅者线程之前,所述方法还包括:
接收发布者发布的所述第一消息订阅者线程的消息;
在所述消息对应的消息总线中插入所述消息;
移除所述多个等待线程队列中的所述第一消息订阅者线程,并在所述就绪线程队列中插入所述第一消息订阅者线程。
7.根据权利要求6所述的方法,其特征在于,等待线程队列以哈希表的形式描述消息订阅者线程的名字与地址,所述哈希表包括线程名字字段和线程控制块的地址之间的对应关系;
所述移除所述多个等待线程队列中的所述第一消息订阅者线程,包括:
针对所述多个等待线程队列中的每个等待线程队列,执行如下操作:
以所述第一消息订阅者线程的线程名字字段为查询标识,查询当前处理的等待线程队列的哈希表,获取所述第一消息订阅者线程的线程控制块的地址;
根据所述第一消息订阅者线程的线程控制块的地址,将所述第一消息订阅者线程的线程控制块从所述当前处理的等待线程队列移除。
8.根据权利要求7所述的方法,其特征在于,所述接收发布者发布的所述第一消息订阅者线程的消息之前,所述方法还包括:
在检测到所述第一消息订阅者线程针对所述多个主题的订阅请求时,在所述多个等待线程队列的每个等待线程队列中插入所述第一消息订阅者线程。
9.一种线程消息处理装置,其特征在于,应用于电子设备,所述电子设备包括第一消息订阅者线程订阅的多个主题的多个消息总线、就绪线程队列以及与所述多个消息总线一一对应的多个等待线程队列,所述装置包括处理单元和通信单元,其中,
所述处理单元,用于通过所述通信单元获取所述就绪线程队列中当前需要处理的所述第一消息订阅者线程;以及用于检测所述多个消息总线中是否存在所述第一消息订阅者线程的消息;若是,则调用所述第一消息订阅者线程读取检测到的消息;若否,则移除所述就绪队列中的所述第一消息订阅者线程,并在所述多个等待线程队列的每个等待线程队列插入所述第一消息订阅者线程。
10.一种电子设备,其特征在于,包括:处理器,存储器,以及一个或多个程序;所述一个或多个程序被存储在所述存储器中,并且被配置成由所述处理器执行,所述程序包括用于执行如权利要求1-8任一项所描述的方法中的步骤的指令。
11.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-8任一项所述的方法。