LinkedBlockingQueue源码
2023-08-22 18:13:40 3 举报
LinkedBlockingQueue源码
作者其他创作
大纲/内容
next
last
本来没有数据,现在有数据了
为什么要加锁?因为unlock()才是真正的去唤醒
h
head
单向链表入队
item=1
item=null
item=2
入队
出队方法
first
入队方法
出队时元素大于1,唤醒下一个消费者
唤醒消费者
判断当前线程入队后是否小于队列容量
出队时已放满,表示生产者已被阻塞
唤醒生产者
小于就唤醒其它线程,因为是独占锁
出队
h节点被孤立,达到GC不可达,帮助GC为什么不能h.next = null? 因为内部的迭代器Itr类中的nextNode方法会报空指针
x=1return x
0 条评论
回复 删除
下一页