从多个线程读取int是否安全?

Viv*_*oel 7 c linux multithreading gcc pthreads

我有多个线程读取相同的int变量.并且一个线程正在写入值.

我不关心比赛状况.

只有我关心的是写入和读取int值同时是内存安全吗?

它不会导致任何应用程序崩溃.

asv*_*kau 5

是的,应该没问题。我可以想象崩溃的唯一方法是如果其中一个线程释放支持该整数的内存。为了获得最佳结果,我还要确保整数在sizeof(int)边界处对齐。(如果没有这种对齐方式,某些 CPU 根本无法访问整数。其他 CPU 为未对齐访问提供较弱的原子性保证。)