单例模式多线程 加锁

单例模式的多线程      

 

比如用户点击   程序正在操作这条数据的过程中  然后又有一个人点击  又把这条数据修改了  多线程会发生的问题

这时候 当第一个用户点击后  应该给这个方法上锁

 通常new一个object对象 

把运行的代码放到lock中   lock里面的方法块只有一个线程可以进入   

第二个线程需要等待第一个线程运行完毕才可以运行

 

 保证多线程的时候 第一次多个人同时访问 只能有一个人进去创建对象    其余人都等待        第二次多个人访问 直接返回对象

双层if 加Lock

 

 静态构造函数   可以简单的实现多线程访问单例模式

  静态变量   可以简单的实现多线程访问单例模式

关于使用AsyncLock异步锁  也需要定义成静态的  不然没有效果

private static AsyncLock _asyncLock = new AsyncLock();

 

C# 针对特定的条件进行锁操作,不用lock,而是mutex

https://www.cnblogs.com/bookobe/p/11229021.html

 

转载于:https://www.cnblogs.com/jiangchengbiao/p/9925184.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值