File tree Expand file tree Collapse file tree 1 file changed +11
-10
lines changed Expand file tree Collapse file tree 1 file changed +11
-10
lines changed Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments