让一个线程修改一个原子单元(例如一个char)而另一个只读取它是否安全? 在一个允许这样做的环境中,比如freertos。
我已经得到了一些代码就是这样,它使用bool(定义为char)作为信号量,我不确定为什么他们为了清晰起见没有使用信号量,但是我又一次不能看到真正使用炭的危险。
答案 0 :(得分:1)
安全如果:
1.您的处理器在单个指令中读取一个字符(非常可能)
2.您的处理器架构不能在执行指令时外部中断可以改变控制流程。
3.只有在您的变量通过ISR
更新时,才能使用Point 2