2016-06-21 69 views

回答

0

只要没有其他线程正在写入该变量,多线程读取相同变量或同时调用同一方法时通常不会有性能损失。

如果一个线程可以编写另一个线程正在读取的变量,那么您有一个需要谨慎处理的并发控制问题。

但是,请注意,当一个线程写入的变量在内存中与其他线程读取的变量相邻时,在特定种类的硬件上可能会有例外情况。在这种情况下,它们可能处于同一个“缓存行” - 从RAM中读取并缓存的内存单元,在这种情况下,读写器之间可能存在争用,因为硬件无法说明它们没有访问相同的位置。

这是一个“假分享”。

0

简单地说,“跨会话使用静态变量”本质上并不会影响性能。但是,您需要关注一下表亲关系,而不是。

您正在从多个用户会话读取/写入的字段将同时访问。这意味着你将需要使你的对象线程安全(如果你正在写这些静态字段,这将是必要的)。 这个是什么可以有直接的性能影响。