- 博客(1)
- 资源 (2)
- 收藏
- 关注
翻译 为什么volatile关键字在Linux内核中一般不允许被使用?
因此编译器可能认为它知道shared_data中的内容,但是spin_lock()调用,因为它充当内存屏障,将迫使它忘记它知道的任何内容。这些访问器是为了防止不必要的优化而编写的,因此,再次强调,volatile是不必要的。但是,当我们知道没有其他人可以使用它时,编译器也会被阻止对临界区内的共享数据的访问优化。关于 volatile 需要理解的关键点是,它的目的是抑制优化,而这几乎从来都不是人们真正想做的事情。在内核中,必须保护共享数据结构免受不必要的并发访问,这是一项非常不同的任务。
2024-02-08 15:09:50 52
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人