c++ - 多线程环境下的同名变量

标签 c++ multithreading

我有一个类文件。我创建了两个线程 A 和 B。在 A 和 B 中,每个线程,我创建一个自动变量 File myfile。然后A和B会操作它。那安全吗?会不会导致数据不一致?

最佳答案

从纯内存资源的角度来看,这将取决于您的 File 变量的范围:

  • 如果它们是局部函数变量,您就可以开始了。每个执行线程都拥有自己的堆栈,完全独立于其他线程,并在其中创建局部变量。

  • 如果它们是static,则您指的是同一个全局地址。

从文件访问的角度来看,这将取决于它是否是同一个文件,以及您是否正在写入它。

关于c++ - 多线程环境下的同名变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126973/

相关文章:

c++ - 以优雅礼貌的方式在 C++ 中处理 GTK 回调

c++ - 在我自己的命名空间中定义后缀 _t 数据类型

c# - 我可以使 WinForms OpenFileDialog.ShowDialog 不产生主线程吗?

Java - 多线程增量

C++ fileIO 行数

C++ - 将静态映射初始化为私有(private)类成员

java - 使用套接字 I/O 阻塞操作中断/停止线程

c# - ParallelEnumerable.Aggregate 用于多种方法

php - 在 php 中运行异步函数

c++ - 保存 tuple_cat 的结果