• 请不要在回答技术问题时复制粘贴 AI 生成的内容
echooo0
V2EX  ›  程序员

Java 中循环队列的问题

  •  
  •   echooo0 · Oct 11, 2022 · 2191 views
    This topic created in 1335 days ago, the information mentioned may be changed or developed.

    需求大概是这样

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

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

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

    java concurrent queue 直接搜就有答案.
    Kamiyu0087
        10
    Kamiyu0087  
       Oct 12, 2022
    LinkedBlockingQueue
    blessingsi
        11
    blessingsi  
       Oct 12, 2022
    一个数组,双指针,也就是楼上说的 ringbuffer 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2802 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 15:17 · PVG 23:17 · LAX 08:17 · JFK 11:17
    ♥ Do have faith in what you're doing.