能否通过提供它所暗示的设计模式的实现来解释这个陈述?

Wat*_* v2 -3 .net c# multithreading

托管线程处理的最佳实践页面状态:

避免提供改变静态的静态方法.在常见的服务器方案中,静态状态在请求之间共享,这意味着多个线程可以同时执行该代码.这开启了线程错误的可能性.考虑使用将数据封装到不在请求之间共享的实例的设计模式.此外,如果静态数据同步,则改变状态的静态方法之间的调用可能导致死锁或冗余同步,从而对性能产生负面影响.

除了粗体的一句之外,我理解其他所有内容.

如果不将字段从静态字段更改为实例字段,您将如何做到这一点?不是说,"在服务器场景中,尽量避免使用静态类级别成员吗?"

如果不是,请您提供它所暗示的设计模式的实现?

Eri*_*ert 6

如果不将字段从静态字段更改为实例字段,您将如何做到这一点?

没有人能够在不知道为什么你认为把东西放在静态场中是一个好主意的时候,没有人可以回答这个问题.

不是说,"在服务器场景中,尽量避免使用静态类级别成员吗?"

不,要明确,这是一个好主意.但这不是这句话试图沟通的内容.这是说,如果你有你认为可能通过使该修改的静态状态的静态方法来解决问题,那么也许你应该考虑找一些其他的方式来解决这个问题.

如果不是,请您提供它所暗示的设计模式的实现?

存在解决问题的设计模式.你还没有说出你要解决的问题,所以推荐一个模式是不可能的.

看,假设你打算在沙滩上建造一座建筑物,我告诉你,只有傻瓜才能在沙滩上建造,然后你说好了,给我一个仍然满足我需求的建筑设计,但不是用沙子建造的. 我不知道你的需求是什么,我不知道为什么你认为在沙滩上建造是一个好主意,所以不,我不能那样做.但这并没有改变只有傻瓜在沙滩上建造的事实.

您是否考虑在多线程服务器方案中修改静态? 这是一个非常愚蠢的事情.找到另一种方法来做你想做的事.怎么样?我没有最微弱的想法; 我不知道你要做什么.但这并没有改变通过修改多线程服务器上的静态状态而不太可能成功的事实.

  • @Gusman:锁是不可分解的.一个*可组合*系统是我们可以通过推理其零件的正确性来推断系统正确性的系统.我们有一个方法F,我们确定它为正确的输入提供了正确的输出.我们有方法G,我们也这样做.我们定义一个方法`XH(X x){return F(G(x)); }和*我们知道`H`是正确的*.这对于使用锁的代码来说根本不是真的*. (2认同)