在C中对函数指针进行原子读/写?

时间:2019-06-21 07:15:54

标签: c multithreading thread-safety function-pointers atomic

我正在研究Windows和其他平台上运行的C语言代码。我知道诸如InterlockedExchangePointer之类的函数可以原子地读取/写入数据指针,而且我敢肯定其他平台也有类似的东西,但是我该如何使用可移植的方法使用函数指针呢?有可能还是我需要锁或内存挡板之类的东西?

1 个答案:

答案 0 :(得分:0)

C11 atomics是基于标准的,但并非所有编译器都支持。

GCC 4.1+,以及力求与其兼容的clang和ICC等编译器均支持__sync builtins

我有some code,它提供了您可能感兴趣的通用API。