在所有平台上(Windows 除外)TMultiReadExclusiveWriteSynchronizer
是一个 TSimpleRWSync
,内部仅使用 Tmonitor.enter
/Tmonitor.exit
这很糟糕,因为一次只能进行一次读取访问。它们是否与适用于 Android/iOS 的 TMultiReadExclusiveWriteSynchronizer
(Windows 版本)等效?
最佳答案
有TLightweightMREW
System.SyncObjs
中的记录在所有平台上作为 native 操作系统实现的瘦包装器完全实现。在 10.4.1 悉尼引入。
有一些事情需要记住:
- 读访问可以从同一线程递归调用,但写访问不能 - 它会在 Windows 上死锁并在 Posix 平台上引发异常
- 读取权限无法升级为写入权限。
关于delphi - 适用于 android/ios 的 TMultiReadExclusiveWriteSynchronizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69325011/