Skip to content

Commit 35da6e1

Browse files
authored
Update 05_Comparing_Queue_Implementations.md
1 parent e9e3740 commit 35da6e1

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

Diff for: ch14/05_Comparing_Queue_Implementations.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@
1111

1212
`14-1`。不同 `Queue``Deque` 实现的比较性能
1313

14-
offer peek poll size
15-
PriorityQueue O(log n) O(1) O(log n) O(1)
16-
ConcurrentLinkedQueue O(1) O(1) O(1) O(n)
17-
ArrayBlockingQueue O(1) O(1) O(1) O(1)
18-
LinkedBlockingQueue O(1) O(1) O(1) O(1)
19-
PriorityBlockingQueue O(log n) O(1) O(log n) O(1)
20-
DelayQueue O(log n) O(1) O(log n) O(1)
21-
LinkedList O(1) O(1) O(1) O(1)
22-
ArrayDeque O(1) O(1) O(1) O(1)
23-
LinkedBlockingDeque O(1) O(1) O(1) O(1)
14+
                      |offer     | peek     | poll     | size
15+
--- |--- |--- |--- |---
16+
PriorityQueue |O(log n) | O(1) | O(log n) | O(1)
17+
ConcurrentLinkedQueue |O(1)     | O(1)     | O(1) | O(n)
18+
ArrayBlockingQueue |O(1) | O(1) | O(1) | O(1)
19+
LinkedBlockingQueue |O(1) | O(1) | O(1) | O(1)
20+
PriorityBlockingQueue |O(log n) | O(1) | O(log n) | O(1)
21+
DelayQueue |O(log n) | O(1) | O(log n) | O(1)
22+
LinkedList |O(1) | O(1) | O(1) |O(1)
23+
ArrayDeque |O(1) | O(1) | O(1) |O(1)
24+
LinkedBlockingDeque |O(1) | O(1) | O(1) |O(1)
2425

2526
问题在于你是否需要阻塞方法,就像你通常为生产者 - 消费者问题所做的那样(要么是因为消费者必须通过等待来处理一个空队列,要么是因为想通过限制队列限制对它们的需求,然后生产者有时必须等待)。如果您不需要阻塞方法或队列大小的限制,请选择高效且免等待的 `ConcurrentLinkedQueue`
2627

0 commit comments

Comments
 (0)