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

标签 c linux multithreading gcc pthreads

我有多个线程读取同一个 int 变量。 一个线程正在写入值。

我不关心竞争条件。

我唯一关心的是同时写入和读取 int 值是否内存安全?

并且不会导致任何应用程序崩溃。

最佳答案

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

关于c - 从多个线程读取 int 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7586939/

相关文章:

c - 使用 -O 标志编译时套接字代码失败

c - 使用 malloc() 作为唯一指针

c - C 中字符缓冲区的最大大小?

c - strtol 重用参数

ruby-on-rails - Rails ImageMagick 和魔法

php - 如何让 PHP 终止 www-data 进程?

multithreading - 具有快速元素删除和随机获取的线程安全可变集合

c# - 文件 io 和伪终端的 p/invoke 声明

c# - 哪种线程方法最适合主服务器网络?

python - 我应该使用线程或多处理来对 Python 进行暴力破解吗?