Log 方法不应该阻塞吗?
namespace Sandbox {
class Program {
static void Main(string[] args) {
var log = new Logger();
lock (log) {
log.Log("Hello World!");
}
}
}
public class Logger {
public void Log(string message) {
lock (this) {
Console.WriteLine(message);
}
}
}
最佳答案
同一个线程两次获取同一个锁。这是可行的,因为 .NET 支持所谓的递归锁(又名 reentrant mutexes )。
关于c# - 为什么这段代码不会死锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045900/