线程同步 ■Lock ■Lock关键字将语句块标记为临界区,方法是获取给定 对象的互斥锁,执行语句,然后释放该锁。 /定义锁或监视对象 各线程所共有的,一般为 Object obj=new objecto. 全局变量或类的成员 Lock(obj》 同步代码 6
6 线程同步 ▪ Lock ◼ Lock关键字将语句块标记为临界区,方法是获取给定 对象的互斥锁,执行语句,然后释放该锁。 //定义锁或监视对象 Object obj=new object(); Lock(obj) { 同步代码 } 各线程所共有的,一般为 全局变量或类的成员
线程同步 Monitor ·Enter((Object)在指定对象上获取排他锁 ·Exit(Object)释放指定对象上的排他锁 try 对象或表达式 { Monitor.Enter(obj)月 dosomething(); finally Monitor.Exit(obj); } 7
7 线程同步 ▪ Monitor ◼ Enter(Object) 在指定对象上获取排他锁 ◼ Exit(Object) 释放指定对象上的排他锁 try { Monitor.Enter( obj ); dosomething(); } finally { Monitor.Exit( obj ); } 对象或表达式