C#学习之多线程开发技术(七)
来源:互联网 发布:大数据专业报哪个大学 编辑:程序博客网 时间:2024/04/30 01:15
线程同步之Monitor结构
-------概述
在Framework中已经为我们提供了三个加锁的机制,分别是
Monitor类
Lock关键字
Mutex类
Monitor类
Lock关键字
Mutex类
都是锁定数据或是锁定被调用的函数。
Mutex则多用于锁定多线程间的同步调用。简单的说,Monitor和Lock多用于锁定被调用端,而Mutex则多用锁定调用端。
Monitor和Lock将代码段标记为临界区,其实现原理是首先锁定某一私有对象,然后执行代码段中的语句,当代码段中的语句执行完毕后,再解除锁。
Mutex则多用于锁定多线程间的同步调用。简单的说,Monitor和Lock多用于锁定被调用端,而Mutex则多用锁定调用端。
Monitor和Lock将代码段标记为临界区,其实现原理是首先锁定某一私有对象,然后执行代码段中的语句,当代码段中的语句执行完毕后,再解除锁。
--------Monitor结构
private Object obj = new Object();//定义一私有对象//……其它代码Monitor.Enter(obj);//….操作临界资源Monitor.Exit(obj);
--------monitor结构的使用方法和LOCK结构是相似的。
首先,先定义这样的一个对象:
private Object obj = new object();
接着,在需要加锁的地方加锁:
Monitor.Enter(obj); //lock(this){ Console.WriteLine("{0}{1}", str, System.DateTime.Now.Millisecond.ToString()); Thread.Sleep(50);}Monitor.Exit(obj);
这里和LOCK的使用方法是相似的。调用Monitor的Enter方法 和 Exit方法即可。
0 0
- C#学习之多线程开发技术(七)
- C#学习之多线程开发技术(一)
- C#学习之多线程开发技术(二)
- C#学习之多线程开发技术(三)
- C#学习之多线程开发技术(四)
- C#学习之多线程开发技术(五)
- C#学习之多线程开发技术(六)
- C#学习之多线程开发技术(八)
- C#学习之多线程开发技术(九)
- C#学习之多线程开发技术(十)
- C#学习之多线程开发技术(十一)
- C#学习之多线程开发技术(十二)
- C#学习之多线程开发技术(十三)
- C#学习之多线程开发技术(十四)
- iOS开发学习之多线程
- iOS开发之多线程技术(NSThread、OperationQueue、GCD)
- iOS开发之多线程技术(NSThread、OperationQueue、GCD)
- 黑马程序员-java学习之多线程技术
- 《Metasploit渗透测试魔鬼训练营》 之 文件包含
- leetcode 70.Climbing Stairs-爬楼梯|动态规划
- Foundation框架之NSDictionary
- iOS网络编程学习
- struts文件上传
- C#学习之多线程开发技术(七)
- Linux rz,sz的安装
- 最大子数组
- cf C. Marina and Vasya (字符串处理_模拟吧)
- 常用的OpenCV函数速查
- 僵尸与孤儿
- Python标准库的学习准备
- 选择排序
- Eclipse写C/C++