据我所知,静态变量和方法在不同的会话中共享。考虑到这种行为可能会导致性能下降,例如,当不同的会话正在读取静态变量或同时调用静态变量时。Tomcat:跨会话共享静态变量和方法。
1
A
回答
0
只要没有其他线程正在写入该变量,多线程读取相同变量或同时调用同一方法时通常不会有性能损失。
如果一个线程可以编写另一个线程正在读取的变量,那么您有一个需要谨慎处理的并发控制问题。
但是,请注意,当一个线程写入的变量在内存中与其他线程读取的变量相邻时,在特定种类的硬件上可能会有例外情况。在这种情况下,它们可能处于同一个“缓存行” - 从RAM中读取并缓存的内存单元,在这种情况下,读写器之间可能存在争用,因为硬件无法说明它们没有访问相同的位置。
这是一个“假分享”。
0
简单地说,“跨会话使用静态变量”本质上并不会影响性能。但是,您需要关注一下表亲关系,而不是。
您正在从多个用户会话读取/写入的字段将同时访问。这意味着你将需要使你的对象线程安全(如果你正在写这些静态字段,这将是必要的)。 这个是什么可以有直接的性能影响。
相关问题
- 1. 静态方法内部变量共享
- 2. 静态方法和变量
- 3. 静态变量和方法
- 4. 跨多个Windows的共享变量的静态类
- 5. 是否跨运行脚本共享一个PHP会话变量?
- 6. 在多个会话中共享变量
- 7. 如何在静态方法中获取会话变量的值?
- 8. 跨域的PHP共享会话
- 9. 跨节点应用共享Redis会话
- 10. 共享方法在ASP.NET会话
- 11. ASP.NET WebApi会话与静态变量
- 12. 会话中的静态变量
- 13. 共享进程和DLL之间的全局/静态变量
- 14. Android静态变量和共享首选项
- 15. 有关静态方法和变量
- 16. 静态成员变量和方法
- 17. Kotlin静态方法和变量
- 18. 共享会话
- 19. ASP3和ASP.NET会话共享
- 20. Rails:动态会话域和子域之间的共享会话
- 21. PHP跨会话变量
- 22. 变量不会增加,从静态方法调用非静态方法
- 23. 在Magento和Symfony之间共享用户会话变量
- 24. 方法体中是否有静态变量由所有实例共享
- 25. 在静态方法和静态事件处理程序之间共享数据
- 26. 跨多个文件共享变量
- 27. 范围非会员的,非静态变量和方法
- 28. 混合静态和动态(共享)库?
- 29. 静态变量和静态方法之间的区别
- 30. Android Studio静态或非静态变量和方法