Nik*_*s R 13 c++ thread-safety
我想知道为什么从内存中读取不是线程安全的.在我迄今为止看到的内容中,尤其是这个问题,从内存中读取似乎并不是线程安全的.
我已经在Python编写了一段时间,现在进入C++.我从来没有听说过Python中的读取不是线程安全的.
如果我错了请纠正我,但如果没有,请告诉我为什么从内存中读取不是线程安全的.
gbj*_*anb 19
读取是线程安全的,没有问题.....直到某些东西写入您正在读取的位置,然后......好吧,希望您在数据更改之前读取,或者在数据更改后读取(在这些情况下,没有后顾之忧,但有时候,只是当你真的不想要它时,你会在写入中途阅读,然后你将获得竞争垃圾数据.
缓解这种情况的方法是确保您只在读取之前或之后读取,这要求您检查是否正在进行写入,从而使用某种类型的同步锁定.这会使事情变慢,因为你显然是在检查锁定然后阅读而不是阅读.如果您正在使用原始数据类型(例如int),那么您可以使用CPU同步来显着提高速度.
作为fr Python,语言运行时总是可以为你同步python数据,如果不是,那么你迟早会得到相同的线程读取问题.(快速谷歌说是的,Python会遇到同样的问题,你不小心)
如果许多线程正在读取相同的位置,那么它是线程安全的,直到没有人尝试在那里写入.
考虑线程A是否在线程B正在读取的内存中写入时读取内容.它会产生一个race condition.读取结果可能无效或从启动到启动不同
| 归档时间: |
|
| 查看次数: |
5734 次 |
| 最近记录: |