我说的是经典的企业应用程序。通常托管在某种应用程序服务器或容器中。没什么花哨的,只是实体、服务、演示/UI 和关系存储。
每当我synchronized
在这样的应用程序中看到关键字(在方法或块上)时,我都会非常怀疑。在我看来,这要么是不了解基本架构概念的标志(例如,域模型未在多个客户端之间共享),要么是更糟糕的标志,表明架构实际上非常拙劣。
你在这里分享我的想法吗?还是我完全偏离了轨道?您是否有在经典企业应用程序中实际需要同步的用例?
我说的是经典的企业应用程序。通常托管在某种应用程序服务器或容器中。没什么花哨的,只是实体、服务、演示/UI 和关系存储。
每当我synchronized
在这样的应用程序中看到关键字(在方法或块上)时,我都会非常怀疑。在我看来,这要么是不了解基本架构概念的标志(例如,域模型未在多个客户端之间共享),要么是更糟糕的标志,表明架构实际上非常拙劣。
你在这里分享我的想法吗?还是我完全偏离了轨道?您是否有在经典企业应用程序中实际需要同步的用例?
我同意你的业务逻辑代码,但在企业应用程序中你也有技术代码,有时你需要一些同步来共享“技术”状态。可以为此使用 synchronized 关键字。(您也可以中继原子变量,或使用应用程序之外的东西,如数据库序列来共享技术状态......)
如果您想创建连续的账单编号 - 序列中没有漏洞 - 您需要一种共享某些状态的方法,以及一种同步的方法......
我同意你的看法。
我认为同步在设计线程安全组件时很重要,但在“业务逻辑”代码中通常不需要。
通过引入共享状态,您可以提高性能,但会降低应用程序未来的可伸缩性。
如果需要并发设计,则可以对应用程序开发人员透明地处理它,例如使用应用程序服务器。