gpt4 book ai didi

java - 在单线程环境中使用像Hashtable这样的线程安全集合类有什么缺点吗?

转载 作者:行者123 更新时间:2023-12-03 12:58:57 24 4
gpt4 key购买 nike

面试官问我有关在单线程环境中使用像Hashtable这样的线程安全类的缺点吗?有什么缺点吗?如果不是,那为什么以后要引入非线程安全类呢?

最佳答案

I was asked by the interviewer about disadvantages of using thread safe class like Hashtable in single threaded environment?



尽管大多数缺点都与性能有关。即使单线程环境中也有多个线程(例如GC,终结器,信号处理程序,JMX等),因此该语言仍然需要遵循同步构造,例如 synchronizedvolatile和 native 锁实现。这些语言功能会刷新或使内存缓存无效,并影响代码重新排序,这两者都可能极大地影响整体运行时性能。

if not then why are there non thread safe class introduced later?



在单线程或多线程应用程序中,非线程安全对象的性能始终优于其线程安全对象。处理本地CPU缓存的能力是现代硬件提供的主要速度提升之一。如果您不必伸手到主内存总线,则可以更快地执行几个数量级的操作。同步结构会降低缓存使用的能力。

最后,就所涉及的数据结构以及使它们在多线程应用程序中正确运行所必需的逻辑而言,线程安全类通常更为复杂。这意味着即使我们忽略了同步结构,它也可能使用更多的内存并运行得更慢,尽管这种情况在很大程度上取决于所讨论的特定类。

关于java - 在单线程环境中使用像Hashtable这样的线程安全集合类有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55844108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com