今天看LinkedBlockingQueue源码,发现一个骚操作:
private void enqueue(Node<E> node) {
// assert putLock.isHeldByCurrentThread();
// assert last.next == null;
last = last.next = node;
}
可以学习一下,步骤是:
① last.next = node 将node结点插入到队尾
② last = node last 队尾设置为node结点