小编Fy *_* Zn的帖子

轮询锁定是否是实现关键部分的正确方法?

如果我有一个关键部分,我必须实现一个锁定它的方法.我看到了以下变体:

while(lock)
{
    //do nothing
}
lock = true;
// code of critical section
lock = false;
Run Code Online (Sandbox Code Playgroud)

但是,我对它持怀疑态度,因为从理论上讲,几个线程可以执行while(lock)(检查并看到它是假的),并且一起进入临界区,因为while(lock)并且lock = true;不是在一个连续的块中执行.我错了吗?或者这确实是一种不安全的方法?

c locking critical-section

3
推荐指数
1
解决办法
246
查看次数

标签 统计

c ×1

critical-section ×1

locking ×1