SynchronousQueue源码
2023-08-22 18:14:19 3 举报
登录查看完整内容
SynchronousQueue源码
作者其他创作
大纲/内容
队列为空或者尾节点和当前相同
公平/非公平
h == t || t.isData == isData
SynchronousQueue()
以公平锁分析原理
SynchronousQueue(boolean fair)
公平使用队列,先进先出非公平使用栈,后进先出
放入元素
取出任务
this(false);
交换数据成功
transfer
数据未初始化,跳出
true
设计精髓:队尾匹配
将构建的新节点,加入队列
有其它线程改变队列结构,重来
false
更新tail节点
默认构造器
自旋512次还是没有消费者来拿数据,阻塞
transferer = fair ? new TransferQueue<E>() : new TransferStack<E>();
公平
自旋
有数据表示放入,否则取出
唤醒阻塞的生产者线程
0 条评论
回复 删除
下一页