Java 中循环队列的问题

2022-10-11 22:50:57 +08:00
 echooo0

需求大概是这样

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

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

1565 次点击
所在节点    程序员
11 条回复
PendingOni
2022-10-12 08:06:23 +08:00
ghost024
2022-10-12 08:39:06 +08:00
arrayDeque 但是这个是非线程安全的
tramm
2022-10-12 08:55:14 +08:00
Disruptor 中的 RingBuffer?
arvinsilm
2022-10-12 09:27:39 +08:00
把 Queue 的 add()方法重写一下?
anakinsky
2022-10-12 09:46:23 +08:00
ArrayBlockingQueue
YepTen
2022-10-12 09:47:52 +08:00
整 2 个队列不就行了,一个未读的,一个读过的,读完后,两个队列互换下。
YepTen
2022-10-12 09:49:41 +08:00
或者玩双指针,一个队列就行了
urnoob
2022-10-12 10:27:04 +08:00
出队+入队 是原子操作的没有。但是实现也简单
Jooooooooo
2022-10-12 10:27:15 +08:00
这不得反思一下自己的搜索能力

java concurrent queue 直接搜就有答案.
Kamiyu0087
2022-10-12 11:45:41 +08:00
LinkedBlockingQueue
blessingsi
2022-10-12 18:38:32 +08:00
一个数组,双指针,也就是楼上说的 ringbuffer 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/886199

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX