请教一个net运行机制问题
比如程序中某个按钮调用static方法,如果现在有1000个人同时点这个按钮,
那这个静态方法是1000人各自独立运行,互不干扰?还是有个排队?
求指导?
------解决方案--------------------跟线程有关。可以在不同的线程中各自运行。
------解决方案--------------------假定在一个线程里面,这1000个是排队的,所以不存在说1000个同时点的情况
如果是多线程,相当于1000个影分身了,各自做不同事情了
这些都是我的猜想,还是请多线程的高手来指点
------解决方案--------------------静态类和静态类成员(C# 编程指南)
静态成员
非静态类可以包含静态的方法、字段、属性或事件。 即使没有创建类的实例,也可以调用该类中的静态成员。 始终通过类名而不是实例名称访问静态成员。
无论对一个类创建多少个实例,它的静态成员都只有一个副本。 静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量(除非在方法参数中显式传递)。
请多看MSDN.
------解决方案--------------------你这个程序是指asp.net吗?
------解决方案--------------------在不同线程里也不会排队,除非自己实现了什么机制去同步。
------解决方案--------------------应该是分开执行的,因为如果为asp.net,那么发布到IIS后,IIS本身是多线程的。所以静态方法应当是同时执行的。如果是静态变量的话,那么2个人点都会有问题。
个人想法,欢迎讨论。
------解决方案--------------------互不干扰,除非他们访问同一个static 变量
------解决方案--------------------单线程中 显然排队没话说
多线程中 方法是互相独立不干扰的 但是他们要访问同一个静态变量的话 会发生同步问题