猿问

读写琐,多线程问题请教

我有一个变量,是读的多,写的少,因此,我是否只需要在写的时候进行同步的处理就可以了,但是我看了一些例子,好像是读和写的时候都要做处理,不太理解,高手给讲讲

ibeautiful
浏览 567回答 2
2回答

MM们

不可以,因为在高级语言看好像是一条语句,计算机硬件处理时实际上不是一条指令。 操作系统处理也可能会有一些中间过程。也就是说你的写并不是原子操作。在写的过程中实际上有很多中间过程,比如寄存器的读写,内存的读写,硬盘的读写(有可能要对硬盘缓存的虚拟内存中读写),而如果写到一半,就开始读,读出来的很可能是脏数据,特别是对一些比较大的数据结构的读写,发生这种情况的概率会非常大。所以不能只对写进行同步
随时随地看视频慕课网APP
我要回答