小编Ale*_*nov的帖子

java.util.concurrent.LinkedBlockingQueue中的奇怪代码

所有!

我在LinkedBlockingQueue中发现了奇怪的代码:

private E dequeue() {
        // assert takeLock.isHeldByCurrentThread();
        Node<E> h = head;
        Node<E> first = h.next;
        h.next = h; // help GC
        head = first;
        E x = first.item;
        first.item = null;
        return x;
}
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么我们需要局部变量h?它对GC有什么帮助?

java puzzle garbage-collection java.util.concurrent

11
推荐指数
3
解决办法
949
查看次数