V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amiwrong123
V2EX  ›  Java

如何比较清楚得解释这几个阻塞队列使用的 lock 的数量

  •  
  •   amiwrong123 · 2020-07-30 12:06:44 +08:00 via Android · 1291 次点击
    这是一个创建于 1337 天前的主题,其中的信息可能已经有所发展或是发生改变。
    LinkedBlockingQueue 使用了两个锁,分别对应出队入队。我觉得原因是,它用原子类用做计数器,而且修改 head last 不冲突。

    ArrayBlockingQueue 使用了一个锁。它的 count 不是原子类。只有这个原因吗

    LinkedBlockingDueue 又使用了一个锁。可能是因为队列两端都支持入队出队,所以最好一个锁。

    总感觉我没解释清楚
    6 条回复    2020-07-30 13:03:06 +08:00
    wysnylc
        1
    wysnylc  
       2020-07-30 12:08:47 +08:00
    无锁才是未来
    gantleman
        2
    gantleman  
       2020-07-30 12:11:11 +08:00
    @wysnylc 嘿嘿,未来已经被拉小黑屋了,996 才是未来。
    amiwrong123
        3
    amiwrong123  
    OP
       2020-07-30 12:18:47 +08:00 via Android
    @wysnylc
    什么,这是个什么梗么
    gantleman
        4
    gantleman  
       2020-07-30 12:28:29 +08:00
    @amiwrong123 没什么大事。有人要求我介绍无锁编程。我就早上发个文章关于无锁的,可能文章的技术太过激进,有几个人没看懂就开始骂街。被管理员拉黑了。
    lxk11153
        5
    lxk11153  
       2020-07-30 12:59:19 +08:00
    @gantleman #4 帖子没了?
    gantleman
        6
    gantleman  
       2020-07-30 13:03:06 +08:00
    @lxk11153 点我头像可以看到,被拉到不能关注的频道了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1343 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:38 · PVG 07:38 · LAX 16:38 · JFK 19:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.