首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Java集合中的向量类在多线程方面性能较差?

为什么Java集合中的向量类在多线程方面性能较差?
EN

Stack Overflow用户
提问于 2017-03-25 10:24:31
回答 1查看 204关注 0票数 1

我知道Java中的Array List和Vector都是多线程的糟糕选择。我知道数组列表不是同步的,这就是为什么多线程不好的原因。我想知道Java中多线程同步向量类性能差的原因。

背后的原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-25 17:39:46

向量为每个方法同步对其数据的访问。

在某些情况下,完全不需要同步,但不能从向量中删除同步。在这种情况下,由于不必要的同步仍然有其代价,向量将效率低下。

另一方面,在某些情况下,应该同步整个方法调用序列。然后,向量方法上的单独同步是无用的,再次增加了性能成本。

ArrayList可用于多线程程序,但与外部同步.

我建议阅读Prc格中的Java并发性来深入了解这个主题。它将帮助您了解外部/内部同步、并发集合以及更多的东西,这些都是真正了解同步方式之间的区别所必需的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43015213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档