在ASP.NET MVC应用程序锁定一个全局对象时死锁可能吗? [英] Is deadlock possible when locking one global object in ASP.NET MVC application?

查看:226
本文介绍了在ASP.NET MVC应用程序锁定一个全局对象时死锁可能吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有关锁定我使用一个静态对象,它是全球的我的应用程序:

For locking I am using a single static object which is global to my application:

public class MvcApplication : System.Web.HttpApplication
{        
    public static readonly object AppLock = new object();
    ...
}

使用它在code锁定:

Using it for locking in code:

lock(MvcApplication.AppLock)
{
    ...
}

让我们不考虑了一会儿对性能的影响。我可以100%肯定,我会避免在此情况下,僵局?

Let us not consider performance impact for a moment. Can I be 100% sure that I will avoid deadlock in this case?

推荐答案

您不能创建一个僵局conditon只是一个锁定对象(的AppLock)见的http://en.wikipedia.org/wiki/Deadlock 。但它有可能与此类codeS中的线程

You can not create a deadlock conditon just with one lock-object(AppLock) See http://en.wikipedia.org/wiki/Deadlock . But it is possible with this kind of codes in threads

lock(A)
   lock(B)
       DoSomething();


lock(B)
   lock(A)
       DoSomething();

这篇关于在ASP.NET MVC应用程序锁定一个全局对象时死锁可能吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆