LinkedBlockingQueue中的“线索”

时间:2018-11-01 08:29:39

标签: java

当我第一次注意LinkedBlockingQueue中的unlink方法时,我认为Trail的第二个参数意味着它是第一个参数-p的下一个Node,但是我错了,因为我在remove方法中找到了(对象o),这意味着跟踪节点是p之前的节点,因此我将注意力集中在方法unlink上,并找到注释:“将内部Node p与先前的跟踪取消链接”。 ,这使我感到奇怪,为什么作者将前一个节点命名为“ trail”,这是否意味着下一个节点?

1 个答案:

答案 0 :(得分:1)

jdk7的源代码中,它称为trail

void unlink(Node<E> p, Node<E> trail)

它已更改为pred

void unlink(Node<E> p, Node<E> pred)

在jdk 10中:

java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)