C#多线程中通过lock实现线程同步
来源:互联网 发布:什么是网络推广专员 编辑:程序博客网 时间:2024/06/06 04:57
Lock定义
lock关键字用来确保代码块运行完成,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻只允许一个线程进入执行,而其他线程必须等待。这是通过在代码运行期间为给定对象获取互斥锁来实现的。在多线程中,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这样可能导致几个线程同时执行一个函数,导致数据混乱,产生不可预料的结果,因此应该避免这种情况发生。
执行过程如下
private static object obj = new object();lock(obj){ //锁定运行的代码段}
线程A进入lock语句,判断obj是否已申请了互斥锁,如果不存在,则申请一个新的互斥锁,这时线程A进入lock里面了。此时线程B后来的话,会等待A完成。
obj代表你希望跟踪的对象,通常是对象引用,推荐使用私有的只读静态对象,比如:
private static readonly object obj = new object();
原文链接:http://www.cnblogs.com/promise-7/articles/2354077.html
阅读全文
0 0
- C#多线程中通过lock实现线程同步
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中) (转)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- C#多线程:深入了解线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- c# 中多线程同步Lock的用法
- Java 多线程 (PART XVII) Lock (I) Lock实现线程同步
- 多线程拨号C#版(探讨lock和Monitor线程同步)
- C#多线程开发:使用lock语句同步多个线程
- 通过Lock对象以及Condition对象实现多线程同步
- Java5 多线程(三)--Lock和Condition实现线程同步通信
- Java5 多线程(三)--Lock和Condition实现线程同步通信
- Java5 多线程(三)--Lock和Condition实现线程同步通信
- 富互联网应用体系结构
- 利用js改变htmll的属性
- react native 环境搭建 报错
- Java程序性能优化 读书笔记(十)并行设计模式:Future模式
- PHP MySQL & PDO
- C#多线程中通过lock实现线程同步
- 每日练习20171031
- 解决python装插件时找不到vcvarsall.bat问题
- socket详解
- Linux PRVF-0002 : Could not retrieve local nodename 错误的解决办法
- Java-编程思想之对象
- AOSP 安卓源码6.0编译-模拟器运行
- 数据结构专题——线性表之顺序表及其Java实现
- 对话框值传递