静态方法,一个类即使有多个实例,都只能使用一个资源,比如连接。当多用户同时访问时,如果你这个数据库连接是静态的,那意味着在这个类上你只会有一个连接,那这个连接给谁用呢?谁先抢到是就是谁的了,其他的用户你根本就没法能够保证得到服务。
这是CSDN上某人的回复,他说的对吗?静态方法是单用户使用?

解决方案 »

  1.   

    好像不大对耶,静态方法不是只有一个线程可以使用。所有线程都可以使用。但是如果你的方法不是readonly的,也就是会修改变量(除了函数内部的非static变量). 这个时候就会有冲突,也就是两个线程同时写一个变量,或者一个线程写变量,写到一半,另一个线程来读,都会造成错误,这个时候就需要吧读写变量的地方使用lock修饰起来,这样就变成了你所说的单用户使用(其实就是单线程使用).
      

  2.   

    连接字符串是没有问题,数据库连接就有问题了,一个人open后别人就不能再open了。
      

  3.   

    我的用的时候很小心,一般不用static用了容易出错。我的感觉是static与线程有关,一个线程访问了,其他的线程访问也可以访问,如果不是ReadOnly的,大家都可以改,所以比较容易出错。
      

  4.   

    我看了你另外那个帖子了 
    静态方法里面如果同时使用了静态变量 那么就会产生冲突 
    就像你的那个打开数据库链接的操作
    当一个用户打开数据库后正在执行操作
    另外一个用户也要使用连接的话 这就会造成后果了
    所以比较好得方法是
    在静态方法里重新new 一次连接 
    这样就不会有所说得只能一个人访问得问题啦