美文网首页
并发--队列

并发--队列

作者: 简书徐小耳 | 来源:发表于2019-04-07 18:24 被阅读0次

    SynchronousQueue

    • 1.生产者持有元素等待消费者到来,不会把元素放入队列中。
    • 2.采用公平和非公平模式

    公平采用的是TransferQueue

    • 1、如果队列为空,或者请求交易的节点和队列中的节点具有相同的交易类型,那么就将该请求交易的节点添加到队列尾部等待交易,直到被匹配或者被取消
    • 2.如果队列中包含了等待的节点,并且请求的节点和等待的节点是互补的,那么进行匹配并且进行交易

    非公平采用TransferStack

    • 1、如果当前的交易栈是空的,或者包含与请求交易节点模式相同的节点,那么就将这个请求交易的节点作为新的栈顶节点,等待被下一个请求交易的节点匹配,最后会返回匹配节点的数据或者null,如果被取消则会返回null。
    • 2.如果当前交易栈不为空,并且请求交易的节点和当前栈顶节点模式互补,那么将这个请求交易的节点的模式变为FULFILLING,然后将其压入栈中,和互补的节点进行匹配,完成交易之后将两个节点一起弹出,并且返回交易的数据。
    • 3.如果栈顶已经存在一个模式为FULFILLING的节点,说明栈顶的节点正在进行匹配,那么就帮助这个栈顶节点快速完成交易,然后继续交易。

    相关文章

      网友评论

          本文标题:并发--队列

          本文链接:https://www.haomeiwen.com/subject/ancfiqtx.html