System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及但不限于通信,尤其涉及一种多线程消息队列实现方法和系统。
技术介绍
1、消息队列可认为是一个消息的链表,它允许进程之间以消息的形式交换数据,具有特定的格式以及特定的优先级。目前主要有posix(portable operating systeminterface of unix,可移植操作系统接口,是一种基于posix标准的进程间通信机制,是ieee为要在各种unix或类unix系统上运行软件,而定义api的一系列互相关联的标准的总称)和system v两种类型的消息队列,posix消息队列中的消息在队列中有一个关联的优先级,消息之间是严格按照优先级顺序存储和传递的;system v消息队列中的消息都有一个整数类型,通过接收api可以以各种方式来选择消息。
2、在分布式网络设备上,两种消息队列的缺陷主要体现在消息队列的超时机制上。posix消息队列的接收和发送是同一属性的,即只能发送和接收,同时是阻塞的或者同时是非阻塞的。在posix技术标准中,超时发送和超时接收使用的时间是绝对时间abs_timeout,这导致在需要时钟同步的系统中,运营商为在网设备进行时间校准或设备自动时间同步后,将不能正确使用超时机制,导致系统不能按设计的流程正常运行;system v消息队列,不支持接收和发送的超时机制。
技术实现思路
1、以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
2、本申请实施例提供了一种多线程消息队列实现方法和系统
3、本申请一实施例提供了一种多线程消息队列实现方法,包括:在需要将消息发送到消息队列或需要从消息队列接收消息时,将待发送或待接收消息的线程对应的线程信息记录到相应消息队列的阻塞线程链表,并在所记录的线程信息中记录系统此时的相对时间为第一相对时间;在消息能发送到消息队列或有消息能被接收的情况下,将能发送或能接收的消息所对应的线程信息从阻塞线程链表中移除;或,根据系统当前的相对时间和线程信息中所记录的第一相对时间判断超时的情况下,将该线程信息从阻塞线程链表中移除理。
4、本申请一实施例还提供了一种多线程消息队列实现系统,包括:存储器和处理器;所述存储器,用于保存用于多线程消息队列实现的程序;所述处理器,用于读取所述用于多线程消息队列实现的程序,执行如本申请任一实施例所述的多线程消息队列实现方法。
5、与相关技术相比,本申请实施例提供的一种全新的多线程消息队列实现方法和系统,该方案在需要将消息发送到消息队列或需要从消息队列接收消息时,将待发送或待接收消息的线程对应的线程信息记录到相应消息队列的阻塞线程链表,并在所记录的线程信息中记录系统此时的相对时间为第一相对时间;在消息能发送到消息队列或有消息能被接收的情况下,将能发送或能接收的消息所对应的线程信息从阻塞线程链表中移除;或,根据系统当前的相对时间和线程信息中所记录的第一相对时间判断超时的情况下,将该线程信息从阻塞线程链表中移除。该消息队列实现方案,一方面,在将消息发送到消息队列或从消息队列接收消息时,通过相对时间判断是否超时,解决了传统的posix和system v两种类型的消息队列在超时机制上的缺陷,能够更好的判断是否超时;另一方面,通过阻塞线程链表记录发送或接收消息的线程信息,这样在发生阻塞时能够更方便的定位问题,减轻多线程系统的维护工作。
6、本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得明显的,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
本文档来自技高网...【技术保护点】
1.一种多线程消息队列实现方法,其特征在于,包括:
2.根据权利要求1所述的多线程消息队列实现方法,其特征在于,所述在消息能发送到消息队列或有消息能被接收的情况下,将能发送或能接收的消息所对应的线程信息从该消息队列的阻塞线程链表中移除后,还包括:
3.根据权利要求2所述的多线程消息队列实现方法,其特征在于:
4.根据权利要求3所述的多线程消息队列实现方法,其特征在于,所述将该节点挂载到已占用消息链表,包括:
5.根据权利要求2所述的多线程消息队列实现方法,其特征在于,所述将消息添加到相应消息队列或从相应消息队列接收消息后,还包括:
6.根据权利要求5所述的多线程消息队列实现方法,其特征在于:
7.根据权利要求1所述的多线程消息队列实现方法,其特征在于,所述根据系统当前的相对时间和线程信息中所记录的第一相对时间判断超时,包括:
8.根据权利要求1所述的多线程消息队列实现方法,其特征在于,所述阻塞线程链表中每一条线程信息均对应一个第一标识信息;所述第一标识信息用于标识所对应的线程信息是对应于待发送消息
9.根据权利要求1所述的多线程消息队列实现方法,其特征在于,每个消息队列采用消息队列号标识;所述将消息发送到消息队列或从消息队列接收消息包括:
10.一种多线程消息队列实现系统,包括:存储器和处理器;其特征在于:
...【技术特征摘要】
1.一种多线程消息队列实现方法,其特征在于,包括:
2.根据权利要求1所述的多线程消息队列实现方法,其特征在于,所述在消息能发送到消息队列或有消息能被接收的情况下,将能发送或能接收的消息所对应的线程信息从该消息队列的阻塞线程链表中移除后,还包括:
3.根据权利要求2所述的多线程消息队列实现方法,其特征在于:
4.根据权利要求3所述的多线程消息队列实现方法,其特征在于,所述将该节点挂载到已占用消息链表,包括:
5.根据权利要求2所述的多线程消息队列实现方法,其特征在于,所述将消息添加到相应消息队列或从相应消息队列接收消息后,还包括:
6.根据权利要求5所述的多线...
【专利技术属性】
技术研发人员:蒋威威,徐静茹,张前,
申请(专利权)人:瑞斯康达科技发展股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。