ConcurrentLinkedQueue队列
2015-10-29 20:43:17 0 举报
ConcurrentLinkedQueue入队流程
作者其他创作
大纲/内容
已删除
head
Node1
tail
ConcurrentLinkedQueue各时刻队列状态
NULL
next
当队列插入第一个元素之后,head没变,而tail值指向刚入队的元素,即第二个元素。可以看到入队不会影响head,同时tail始终指向队列的第一个节点。
出队第一个元素
初始化,队列为NULL,head和tail都指向一个NULL的节点
入队第二个元素
Node2
当队列对出第一个元素之后,head和tail指向了同一个节点,此时队列又一次进入了初始化状态,即head和tail都指向一个NULL节点。
出队第二个元素
入队第一个元素
当队列出队第一个元素之后,由于出队只是将节点的值置为NULL,而非删除节点,所以head指向了被删除的节点,而tail没变。可以看到出队不会影响tail,同时head的next指向的是队列的第一个节点,而非head指向第一个节点。
初始化
当队列插入一个元素之后,head依旧指向之前的NULL节点,但是tail的next指向队列的第一个元素,而tail值指向刚入队的元素,即第一个元素。可以看到当队列不为NULL时,head与tail是不相等的。
0 条评论
下一页