首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >锁定线程与进程

锁定线程与进程
EN

Stack Overflow用户
提问于 2018-06-03 02:16:18
回答 1查看 125关注 0票数 2

下面是一段使用锁的示例代码:

代码语言:javascript
复制
public static class Account  
{  
    decimal balance;  
    private static Object thisLock = new Object();  

    public static void Withdraw(decimal amount)  
    {  
        lock (thisLock)  
        {  
            if (amount > balance)  
            {  
                throw new Exception("Insufficient funds");  
            }  
            balance -= amount;  
        }  
    }  
} 

假设此方法由web api调用。并且API托管在IIS上。我的理解是,当IIS收到请求时,可以创建一个新的工作进程。因此,如果接收到两个并发请求,并且它们在两个单独的进程上执行,那么上面的锁就没有什么用处了,我需要使用某种进程间阻塞。我的理解正确吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-03 03:05:31

不同的请求将由不同的线程服务,所以锁是有效的。:当使用一个服务器场(比如多个azure web应用实例)时,这个锁只对一个实例有效。因此,在分布式编程的世界里,你必须重新考虑你的设计。太多的锁会减慢系统的速度,并且请求必须等待轮到它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50659840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档