Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
707 views
in Technique[技术] by (71.8m points)

c# - Is deadlock possible when locking one global object in ASP.NET MVC application?

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();
    ...
}

Using it for locking in code:

lock(MvcApplication.AppLock)
{
    ...
}

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...