C# lock关键词/lock语句块、线程锁
来源:互联网 发布:软件研发学习 编辑:程序博客网 时间:2024/06/05 13:41
一、lock关键词说明
1. lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。
2. lock 语句块锁定,功能等同于
3. lock语句块锁定和Monitor线程锁,不能跨进程同步
二、备注
lock
关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。 如果其他线程尝试进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。
线程 这节讨论了线程处理。
lock
关键字在块的开始处调用 Enter,而在块的结尾处调用 Exit。 ThreadInterruptedException 引发,如果 Interrupt 中断等待输入 lock
语句的线程。
通常,应避免锁定 public
类型,否则实例将超出代码的控制范围。 常见的结构 lock (this)
、lock (typeof (MyType))
和 lock ("myLock")
违反此准则:
如果实例可以被公共访问,将出现
lock (this)
问题。如果
MyType
可以被公共访问,将出现lock (typeof (MyType))
问题。由于进程中使用同一字符串的任何其他代码都将共享同一个锁,所以出现
lock("myLock")
问题。
最佳做法是定义 private
对象来锁定, 或 private static
对象变量来保护所有实例所共有的数据。
在 lock
语句的正文不能使用 等待 关键字。
1.lock语句中锁定的必须是引用类型的对象,不能是值类型
2.为了避免死锁,lock的对象需要是private对象
3.为了避免lock对象的唯一性,通lock的对象为 private static或者 private readonly static
四、使用示例
- C# lock关键词/lock语句块、线程锁
- C# lock关键词/lock语句块、线程锁
- lock 语句(C# )
- c#线程Lock
- C#线程之lock
- java同步关键词解释、synchronized、线程锁(Lock)
- C#之lock关键字 lock锁定语句
- C# 关于线程锁lock的使用方法
- C#多线程开发:使用lock语句同步多个线程
- lock语句和线程安全
- C#语言参考【lock语句】
- lock 语句(C# 参考)
- lock 语句(C# 参考)
- lock 语句(C# 参考)
- c#线程同步(2)----lock
- 11.3线程----锁Lock
- Lock线程锁
- 线程锁Lock
- 初识c#---泛型集合,哈希表,堆栈,队列,索引器
- mysql优化1.1
- PHP学习笔记——使用回调函数处理数组的函数array_filter()
- 深度学习如何选择模型
- leetcode53. Maximum Subarray
- C# lock关键词/lock语句块、线程锁
- 1.Redis简介与基本命令
- Ubuntu 16.04下安装OpenStack(juno)之add the compute service报错分析
- ShareSDK 第三方登录 Android
- 输入n个整数,编写函数实现以下操作,要求用指针实现: (1) 对n个数进行排序; (2) 将从指定位置的m个数逆序存放,例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把
- 用C语言给NI公司数据采集卡编程序进行电压数据采集
- Discuz二次开发 教你识别程序目录和文件列表
- HTTP1.0 HTTP 1.1 HTTP 2.0主要区别
- Netty源码分析:NioEventLoop启动以及其IO操作和Task任务的处理