【发布时间】:2015-09-03 16:26:45
【问题描述】:
我只是在寻找为什么 ArrayList 比 Vector 快的问题的答案,我发现 ArrayList 更快,因为它不同步。 所以我的疑问是:
如果 ArrayList 不同步,为什么要在多线程环境中使用它并与 Vector 进行比较。
如果我们处于单线程环境中,那么在处理单线程时,由于没有进行同步,Vector 的性能会如何下降。
考虑到以上几点,我们为什么要比较性能?
请指导我:)
【问题讨论】:
-
第一个answer
-
您可以在单个线程中使用数组列表来获得“速度”提升,但是一旦您需要在线程之间传输数组列表,您就需要同步列表。当我在linkedblockingqueue中完成它时,我通常会推送一个arraylist,以便另一个线程将它放入并做它的事情,并最终通过另一个linkedlbockingqueue将它的结果发回。要记住的是,当您完成列表后,不要在该线程中再次触摸它。
标签: java vector arraylist collections