程序员的暴击 2021-09-26 17:51
浏览 16
已结题

JDK17 的LinkedTranferQueue 问题

在研究源码时发现如果只有消费者去取数据,没有生产者生产数据时,消费者线程肯定需要阻塞入队列,但经过Xfer里的入队列逻辑时此处不解。if(!p.casnext(null,s) ) continue这段代码执行完成后p节点的next指针一直指向自己 无限指向,难道不内存泄露么。没执行此代码都是正常的。我打了断点,目前是第一个消费者线程取数据,其他线程都被断点阻塞在main方法中 另外如果只有生产者线程put数据没有消费者线程取数据,第一个生产者线程也会出现此种情况。

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月4日
    • 创建了问题 9月26日