0

让一个线程修改一个原子单元(例如一个字符)而另一个只读取它是否安全?当然,在允许这样做的环境中,例如 freertos。

我得到了一些执行此操作的代码,它使用 bool(定义为 char)作为信号量,我不确定他们为什么不使用信号量只是为了清楚起见,但是我又看不到使用的危险一个字符或者真的。

4

1 回答 1

1

如果:

1.您的处理器在单个指令中读取一个字符(这很可能)

2.您的处理器架构不是这样,在执行指令时外部中断可以改变控制流。

3.只有当您的变量通过 ISR 更新时,第 2 点才有效

于 2014-06-06T16:02:20.203 回答