Lor*_*one 4 synchronization mutex pthreads memory-fences
我听说在处理互斥锁时,必要的内存屏障是由 pthread API 本身处理的。我想了解有关此事的更多细节。
POSIX 规范列出了必须“与其他线程同步内存”的函数,其中包括pthread_mutex_lock()和 等函数pthread_mutex_unlock()。
附录 A.4.11中详细说明了“同步内存”的函数:
...必须被高级编译系统识别,以便内存操作和对这些函数的调用不会通过优化重新排序;和
...可能需要添加内存同步指令,具体取决于特定的机器。
从来没有明确指定隐含哪种类型的内存同步指令 - 隐含的规范是,如果您使用一对“同步指令”来确保一个线程中的读取必须在另一个线程中的写入之后发生,那么您的程序将正确操作。这包括编译器和架构重新排序效果。
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |