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

Java 中循环队列的问题

  •  
  •   echooo0 · 235 天前 · 1344 次点击
    这是一个创建于 235 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求大概是这样

    依照队列先进先出的原则,顺序获取,先出来的元素放进队尾,构成了一个循环。 然后最好是线程安全的(或者单独额外加锁也行)

    不知道 java 里面有没有这样现成的数据结构设计

    11 条回复    2022-10-12 18:38:32 +08:00
    PendingOni
        1
    PendingOni  
       234 天前
    ghost024
        2
    ghost024  
       234 天前
    arrayDeque 但是这个是非线程安全的
    tramm
        3
    tramm  
       234 天前
    Disruptor 中的 RingBuffer?
    arvinsilm
        4
    arvinsilm  
       234 天前
    把 Queue 的 add()方法重写一下?
    anakinsky
        5
    anakinsky  
       234 天前
    ArrayBlockingQueue
    YepTen
        6
    YepTen  
       234 天前
    整 2 个队列不就行了,一个未读的,一个读过的,读完后,两个队列互换下。
    YepTen
        7
    YepTen  
       234 天前
    或者玩双指针,一个队列就行了
    urnoob
        8
    urnoob  
       234 天前
    出队+入队 是原子操作的没有。但是实现也简单
    Jooooooooo
        9
    Jooooooooo  
       234 天前   ❤️ 1
    这不得反思一下自己的搜索能力

    java concurrent queue 直接搜就有答案.
    Kamiyu0087
        10
    Kamiyu0087  
       234 天前
    LinkedBlockingQueue
    blessingsi
        11
    blessingsi  
       234 天前
    一个数组,双指针,也就是楼上说的 ringbuffer 。
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1026 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.