在某些情况下,我们需要确保某段代码不会被一个线程使用,而另一个线程在该段中。使用支持多线程的语言很容易通过“锁定”这些部分来实现。但是当我们必须“模拟”线程时,没有内置的东西,比如lock
C# 中的关键字或Lock
Java 中的接口。我发现在这些情况下锁定部分的最佳方法如下所示:
if (!locked){
locked = true;
do some stuff
locked = false;
} else {
add to queue
}
当前解决方案的缺点是什么?值得积极使用吗?