使用 gcc,我的代码有一个原子的 128 位整数,而不是由一个线程写入,并从 31 个线程并发读取。我不关心这个变量与我程序中任何其他内存同步的操作(即,我可以接受编译器将两次写入重新排序到两个不同的整数),只要读取和写入这个变量是一致的。我只想保证对原子 128 位的写入“最终”保证反映在从该变量读取的 31 个线程中。
使用宽松的记忆模型是否安全?我应该注意哪些问题?
使用 gcc,我的代码有一个原子的 128 位整数,而不是由一个线程写入,并从 31 个线程并发读取。我不关心这个变量与我程序中任何其他内存同步的操作(即,我可以接受编译器将两次写入重新排序到两个不同的整数),只要读取和写入这个变量是一致的。我只想保证对原子 128 位的写入“最终”保证反映在从该变量读取的 31 个线程中。
使用宽松的记忆模型是否安全?我应该注意哪些问题?