ITPub博客

首页 > > > 有关.net 并发访问

有关.net 并发访问

作者:古月雪 时间:2019-11-14 15:21:17 0 删除 编辑

动态和静态方法的区别:

动态方法:使用时在内存中实例化该方法,用完释放掉。因为有实例化和释放的过程,所以耗CPU资源

静态方法:创建完内存至一直存在,直接调用即可。因为内存中独占一部分内存,所以耗内存资源。

常用的方法静态比较好。

(问1,我这个理解对吗?)

IIS多线程执行会引发并发访问共享数据(数据库,静态字段,静态方法),导致出现脏读等现象。

(问2,我这个理解对吗?)

为此我们用锁机制来解决该问题,

如:数据库的事务ACID属性,还有.net 里可以用static object ob = new object();    lock (ob)方法加锁。

(问3,我这个理解对吗?)

--------------------------------------

如果两个用户同时读写同一个静态方法,很可能脏读现象,因为静态方法是在内存中唯一的。

(问4,我这个理解对吗?)。

如果两个用户同时读写同一个动态方法,不可能出现脏读现象,因为调用动态方法时在内存中实例化(拷贝一份)独立的方法。

(问5,我这个理解对吗?)

如用“static object ob = new object();    lock (ob){}”方式加锁,修饰符必须是静态。

如果用“static object ob = new object();    lock (ob){}”方式加锁动态/静态方法(SqlHelper),在数据库中可以不用事务锁(ACID)。

(问6,我这理解对吗?)

 

 

注:我语文不太好,语法方面可能有错误。如果有不明白的地方请提出来。谢谢!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3711/viewspace-3125304/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-09

  • 博文量
    160
  • 访问量
    1174