什么是消息队列
队列数据结构
我们都学习过数据结构与算法相关的内容,消息队列从数据结构来看,就是一个由链表或是数组构成的一个先进先出的数据容器。由链表实现还是数组实现都没关系,它只要满足数据项是先进先出的特点,那么就可以认为它是一个队列结构。队列是只允许在一端进行插入操作、而在另一端进行删除操作的线性表。这个是队列较为正式的定义,这个定义使它满足先进先出特性。所谓线性表则表达的是队列元素之间的连接是线性的,元素的前进指针只能指向一个元素。更简单的解释是,元素与元素之间是一对一关系。
下图是一个由链表实现的单向链表队列
上面的队列,插入元素时总是插入到tail尾部,删除时问题从Head头部删除,要实现一个链表队列结构,只需要记录首尾指针指向的元素,元素与元素之间用指针连接即可。看到这里,我们就明白了什么是消息队列了,不过是一个把消息存储在队列结构里里的数据容器而已。
与队列结构相似是的栈结构,栈是后进先出的,栈(stack)是限定仅在表尾进行插入和删除操作的线性表。
如图,栈的操作因只能对表尾进行操作,因此只需要记录Top指针即可。增加元素(入栈)时,先让元素的前进指针指向Top指针指向的元