嗨:我有一个多线程Java程序.有很多单身人士.我想知道单例是否会降低多线程程序的性能,尤其是吞吐量.一些Singleton只是一个对象,一些singleton是concurrentHashmap和/或atomicinteger.
如果你的单身人士是不可改变的,那么他们就不会导致表现下降.
但是正如您所说,如果synchronized您的代码中存在concurrent()数据结构单例,那么与非并发数据结构相比,您的性能将会降低.
基本上,将对象视为具有某些方法的数据持有者,现在认为您的代码中有一个链表,并且许多线程同时运行并修改该链表.类似于此示例,您的单例数据结构是数据持有者,许多线程正在尝试更新它,并且系统与锁保持一致.
简而言之,我不认为在并发系统中拥有单例将在性能上产生显着差异,除非它们保持由多个线程更新的数据结构.
| 归档时间: |
|
| 查看次数: |
2853 次 |
| 最近记录: |