1

我知道 ConcurrentLinkedDeque 可以在多线程应用程序中使用它们两者之间的基本区别。

谁能给我一个实际的例子,如果错误使用它会如何影响应用程序的性能,在哪种情况下我应该使用 ConcurrentLinkedDeque 以及何时使用 ArrayDeque。

4

1 回答 1

2

如果ConcurrentLinkedDeque您需要从多个线程同步访问队列,则使用,ArrayDeque如果不需要。

时期。

使用错误的后果是,如果您尝试ArrayDeque在多线程设置中访问一个,您将破坏您的队列。

时期。

这是您唯一的性能考虑。其他都是没有意义的。

除非...

您通过分析器运行应用程序并发现其大部分时间都花在ConcurrentLinkedDeque.size(). 然后切换到ArrayDeque包裹在synchronized块中。

讲座结束;)

于 2017-05-14T10:53:48.200 回答