当前位置:网站首页>C#线程锁(Lock)
C#线程锁(Lock)
2022-07-27 05:20:00 【月光在发光】
C#线程锁(Lock)
Lock的作用
Lock可以看成在操作系统中的临界区,Lock区域内的代码表示临界区,使得同一时间只有一个线程能够进入Lock所包含的函数中,实现原子操作,保护同一资源只有一个线程进行修改,实现不同线程中数据的同步。
未进入Lock的线程将被阻塞等待,直到Lock锁被打开才唤醒其中一个进入,并且进行上锁
Lock的使用
private Object thisLock = new Object();//创建对象锁
lock (thisLock)
{
// Critical code section
}
Lock使用的注意事项
1、 需要注意的是首先创建的对象锁,应该是不同线程能够访问的同一个对象,因此至少应该是在类中是全局的,不应为局部变量。
2、为了实现全局的对象锁,可以使用static,例:
private static Object thisLock = new Object();//创建对象锁
3、结合自己线程的运行特性,选择正确的对象锁
边栏推荐
猜你喜欢

根据SQL必知必会学习SQL(MYSQL)

物联网操作系统多任务基础

IOT operating system

Chrome 如何快速将一组正在浏览的网页(tabs)转移到另一台设备(电脑)上

剪枝-量化-转onnx中文系列教程

17. Attenuation of momentum and learning rate

WebODM win10安装教程(亲测)

Can it replace PS's drawing software?

为什么交叉熵损失可以用于刻画损失

李宏毅 2020 深度学习与人类语言处理 DLHLP-Conditional Generation by RNN and Attention-p22
随机推荐
2022.6.10 STM32MP157串口时钟的学习
安全帽反光衣检测识别数据集和yolov5模型
编程学习记录——第9课【操作符】
百问网驱动大全学习(一)LCD驱动
18. Convolutional neural network
pytorch中交叉熵损失函数的细节
socket编程二:使用select
Live Home 3D Pro室内家居设计工具
[first song] Introduction to data science of rebirth -- return to advanced level
15. GPU acceleration, Minist test practice and visdom visualization
编程学习记录——第8课【数组与设计五子棋,扫雷游戏】
Weidongshan digital photo frame project learning (I) display ASCII characters on LCD
[song] rebirth of me in py introductory training (8): module
Cesium教程 (1) 界面介绍-3dtiles加载-更改鼠标操作设置
代码随想录笔记_哈希_242有效的字母异位词
C语言-动态内存管理
编程学习记录——第7课【函数】
[first song] rebirth of me in py introductory training (2): formula programming
韦东山 数码相框 项目学习(三)freetype的移植
[concurrent programming series 9] priorityblockingqueue, delayqueue principle analysis of blocking queue