首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是进程的内存读写操作?

什么是进程的内存读写操作?
EN

Stack Overflow用户
提问于 2013-10-11 12:48:21
回答 1查看 375关注 0票数 0

我确信我的头衔不是十全十美的,所以让我澄清我自己。

本文介绍:http://msdn.microsoft.com/en-us/magazine/jj863136.aspx

代码语言:javascript
运行
复制
void Print()
 {
  int d = _data;     // Read 1
  if (_initialized)  // Read 2
    Console.WriteLine(d);
  else
    Console.WriteLine("Not initialized");
}

为什么Read 1只算作阅读,而不算作写作?我的意思是,“_data”的内容最终被写到了“d”。

我希望你能理解我的要求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 12:53:37

int d = _data;确实是一种读和写。但是写入是对本地的、堆栈上的、变量d的,对那里的讨论不感兴趣。

令人感兴趣的是,当有多个线程访问同一个对象并因此访问相同的内存时,从成员变量_data读取/写入的顺序是什么。对于本地d变量,每个线程都有自己的堆栈,并且在这些示例中没有关于访问d的多线程问题。

本文讨论_data变量,而不是d变量。每当有人读/写到_data时,这是一个有趣的部分,因为这是一个人必须注意的关于多线程的内存重新排序的地方。int d = _data也写到d是完全不相关的。

通过注释// Read 1,这意味着我们谈论的是_data --在这一行代码中没有对_data的写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19318559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档