2013-10-11 37 views

回答

1

int d = _data;的确是一个读和写。但是写入是在本地,在堆栈上,变量d,对于那里的讨论没有兴趣。

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

该文章讨论变量_data变量,而不是d变量。无论何时有人读取/写入_data,这都是一件有趣的事情,因为这是关于多线程的内存重新排序是必须注意的事情。 int d = _data也写到d是完全不相关的。

通过评论// Read 1,这意味着我们正在谈论_data - 并且在该行代码上没有写入_data

+0

文章中这只是一个内存读取操作。我仍然不知道为什么? –

+0

因为写入d与本文讨论的内容完全无关。 – nos

+0

由此,如果im错误,将内存读取计数作为局部变量获取任何类型的值(数字,字符,另一个变量),则将我纠正。和内存写入计数作为线程共享内存位置的任何类型的值(数字,字符,其他变量)。 –