8月《程序员》对lock的评析有错?
2005-08-30 20:56
155 查看
待着没事看了一会8月的《程》,发现P86对lock的评析似乎有错:
崔轶的评析认为lock块中发生异常,流程跳转时不会释放锁。
即lock (x) ... =
System.Threading.Monitor.Enter(x);
...
System.Threading.Monitor.Exit(x);
和我的印象不符阿,记得可以释放锁吧?
看了一下MSDN,果然如此,可以释放锁:
(ms-help://MS.MSDNQTR.2003FEB.2052/csspec/html/vclrfcsharpspec_8_12.htm)
MSDN中评述如下所示:
下列形式的
(其中
}
finally {
System.Threading.Monitor.Exit(x);
}[/code]
不同的只是:实际执行中
呵呵,原来已经放到finally里边了。
崔轶的评析认为lock块中发生异常,流程跳转时不会释放锁。
即lock (x) ... =
System.Threading.Monitor.Enter(x);
...
System.Threading.Monitor.Exit(x);
和我的印象不符阿,记得可以释放锁吧?
看了一下MSDN,果然如此,可以释放锁:
(ms-help://MS.MSDNQTR.2003FEB.2052/csspec/html/vclrfcsharpspec_8_12.htm)
MSDN中评述如下所示:
下列形式的
lock语句
lock (x) [code]...
(其中
x是一个引用类型的表达式)完全等效于
System.Threading.Monitor.Enter(x); try { [code]...
}
finally {
System.Threading.Monitor.Exit(x);
}[/code]
不同的只是:实际执行中
x只计算一次。
呵呵,原来已经放到finally里边了。
相关文章推荐
- 程序员8月书讯
- 程序员8月书讯
- 《程序员》2010 8月摘要
- 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
- 程序员求职之道(《程序员面试笔试宝典》)之面试心得交流?
- 从Lumia退役看为什么WP走向没落(从程序员与市场开发的角度,讲的真棒!)
- Java线程(八)----锁对象Lock-同步问题更完美的处理方式
- 有人问我:程序员要供祖师爷的话该供谁?
- 程序员的十大谎言
- 未来五年程序员应当具备的十项技能
- 自己做程序员的悲哀
- 如果你是一个合格的程序员或者你认为自己应该是计算机科学家
- C/C++程序员应聘常见面试题剖析
- 优秀程序员必备的15大技能
- 程序员小抄大全
- 初出茅庐的程序员,需要学习什么
- 作为一个Java架构师程序员 你应该会什么
- 一个合格程序员该做的事
- 独家:未来五年程序员应当具备的十项技能
- 一个游戏程序员的学习资料