加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET开发人员真的需要关心线程安全吗?

发布时间:2020-12-15 23:38:34 所属栏目:asp.Net 来源:网络整理
导读:我认为我自己知道线程的概念,为什么某些代码是或不是“线程安全的”,但是作为主要使用ASP.NET的人,线程和线程安全是我很少想到的.然而,我似乎在Stack Overflow上遇到了许多意见和答案(不一定是ASP.NET),以达到“警告 – 这不是线程安全
我认为我自己知道线程的概念,为什么某些代码是或不是“线程安全的”,但是作为主要使用ASP.NET的人,线程和线程安全是我很少想到的.然而,我似乎在Stack Overflow上遇到了许多意见和答案(不一定是ASP.NET),以达到“警告 – 这不是线程安全!”的效果,这往往使我第二次猜测我是否写过类似的代码实际上可能会导致我的应用程序的问题. [震惊,恐怖等]所以我不得不问:

ASP.NET开发人员真的需要关心线程安全吗?

我的采取:虽然Web应用程序本质上是多线程的,但每个特定的请求都是在单个线程上,而您创建,修改或销毁的所有非静态类型都是该线程/请求的独占.如果请求创建了一个创建业务对象和I want to lazy-initialize a collection within this object实例的DAL对象的实例,如果它不是线程安全的,因为它永远不会被另一个线程所触及. …对? (我们假设我不是在请求期间启动一个新的线程来启动一个长时间运行的异步进程,我很清楚,改变一切.)

当然,静态类,方法和变量恰恰相反.它们由每个请求共享,并且开发人员必须非常小心,不要在一个用户执行时具有“不安全”代码,可能会对所有其他用户产生意想不到的影响.

但是这是关于它,因此ASP.NET中的线程安全性主要归结为:谨慎地设计和使用静态.除此之外,你根本不需要担心.

我错了这个吗?你不同意吗开导我!

解决方法

除了在应用程序的所有请求之间共享的静态项目之外,还有一些对象.例如,将应用程序缓存中的项目放在不是线程安全的情况下要小心.此外,没有任何东西阻止您在处理请求时产生您自己的线程进行后台处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读