我忙于深入研究多线程和死锁等问题。这本书同时针对伪代码和 C 代码,我忙于研究诸如互斥锁和监视器之类的实现。
这让我想到了以下几点;在 C# 和事实上 .NET 中,我们有很多语法糖来做事。例如(.NET 3.5):
lock(obj)
{
body
}
等同于:
var temp = obj;
Monitor.Enter(temp);
try
{
body
}
finally
{
Monitor.Exit(temp);
}
当然还有其他示例,例如using() {}
构造等。我的问题是,什么时候更适用于“单独行动”并自行编写代码而不是使用语言中的“语法糖”?是否应该使用他们自己的方式,而不是那些在你编码的语言方面更有经验的人?
我记得以前不必Process
在块中使用对象using
来帮助解决一些多线程问题和无限循环。我仍然因为那里没有 using 构造而感到肮脏。
谢谢,
凯尔