我想知道为什么从内存读取不是线程安全的.在我迄今为止看到的这个问题中,尤其是
this的问题,从内存读取似乎并不是线程安全的.
我一直在Python编码一段时间,现在进入C.我从来没听说过Python中的阅读不是线程安全的.
如果我错了,请纠正我,但如果没有,请告诉我为什么从内存读取不是线程安全的.
解决方法
阅读是线程安全的,没有问题…..直到有人写到你正在读取的位置,然后…好的,希望你会在数据更改之前阅读,或者在数据更改后读取在这些情况下,不用担心),但有时候,只是当你真的不想要它,你会读取一半的写入,然后你会得到竞争垃圾数据.
减轻这种情况的方法是确保您只在任何写入之前或之后读取,这需要您检查写入是否发生,从而使用某种类型的同步锁.这使事情变慢,因为你显然检查锁,然后阅读,而不是阅读.如果您正在使用原始数据类型(例如,int),则可以使用cpu同步来快速加速.
作为py Python,可以通过语言运行时为您总是同步python数据,如果不是那么你迟早会得到相同的线程读取问题. (快速谷歌说是的,Python will suffer the same problems你不小心)