需求大概是这样
依照队列先进先出的原则,顺序获取,先出来的元素放进队尾,构成了一个循环。 然后最好是线程安全的(或者单独额外加锁也行)
不知道 java 里面有没有这样现成的数据结构设计
1
PendingOni 2022-10-12 08:06:23 +08:00
Queue 出来直接到 Stack 中么?
https://www.scaler.com/topics/java/stack-and-queue-in-java/ |
2
ghost024 2022-10-12 08:39:06 +08:00
arrayDeque 但是这个是非线程安全的
|
3
tramm 2022-10-12 08:55:14 +08:00
Disruptor 中的 RingBuffer?
|
4
arvinsilm 2022-10-12 09:27:39 +08:00
把 Queue 的 add()方法重写一下?
|
5
anakinsky 2022-10-12 09:46:23 +08:00
ArrayBlockingQueue
|
6
YepTen 2022-10-12 09:47:52 +08:00
整 2 个队列不就行了,一个未读的,一个读过的,读完后,两个队列互换下。
|
7
YepTen 2022-10-12 09:49:41 +08:00
或者玩双指针,一个队列就行了
|
8
urnoob 2022-10-12 10:27:04 +08:00
出队+入队 是原子操作的没有。但是实现也简单
|
9
Jooooooooo 2022-10-12 10:27:15 +08:00 1
这不得反思一下自己的搜索能力
java concurrent queue 直接搜就有答案. |
10
Kamiyu0087 2022-10-12 11:45:41 +08:00
LinkedBlockingQueue
|
11
blessingsi 2022-10-12 18:38:32 +08:00
一个数组,双指针,也就是楼上说的 ringbuffer 。
|