【发布时间】:2013-05-25 16:19:50
【问题描述】:
使用 Singleton / Static 会减慢多线程应用程序(在多核系统上运行)的速度吗? 我正在运行一个在 8 核机器上创建 6 个线程的应用程序。最初在所有线程之间共享一些单例对象。而且我没有得到从单线程模型到多线程模型的预期性能提升。 在此之后,我更改了我的代码,以便没有单例或静态(即尝试不在线程之间共享任何内容)并且我获得了大约 6 倍的性能提升。 有人可以解释一下这种行为吗?
【问题讨论】:
-
我认为我们需要查看一些代码来回答这个问题。如果你对同步资源有很多争用,多线程对你没有多大帮助,甚至可能伤害你。
标签: java multithreading static singleton multicore