【发布时间】:2014-08-17 17:58:47
【问题描述】:
我问了问题here,有人留言说问题是我是sharing a static variable。
为什么会有这样的问题?
【问题讨论】:
-
因为全局变量是个坏消息。朋友不要让朋友使用 globals。
-
它不会降低性能(单独)。但这通常会导致需要同步锁才能安全地共享它,这反过来又会导致各种悲伤。
-
嗯?我从没有说过!我说您在线程之间共享一个静态字段,并且(很可能)假设该类是内部同步的,这显然会导致显示的性能问题。您在 cmets 中没有正确 ping 我,这就是我没有收到任何通知的原因。
-
线程在尽可能少地共享时运行得最好。当线程共享资源时,这会减慢它们的速度。
-
@PeterLawrey 仅在发生突变或同步时。共享常量不是问题,使用常量可以提高性能。我所说的常量是指“静态最终”和“静态”对数据的引用,这些数据在初始化之后永远不会发生变异。
标签: java multithreading performance static static-members