android/ios 的 TMultiReadExclusiveWriteSynchronizer
TMultiReadExclusiveWriteSynchronizer for android/ios
在所有平台上(windows 除外)TMultiReadExclusiveWriteSynchronizer
是一个 TSimpleRWSync
,内部只使用 Tmonitor.enter
/ Tmonitor.exit
,这很糟糕,因为只有一次读取一个权限。他们是否等同于 TMultiReadExclusiveWriteSynchronizer
(windows 版本),适用于 Android/iOS?
在 System.SyncObjs
中有 TLightweightMREW
记录在所有平台上作为原生 OS 实现的精简包装器完全实现。在 10.4.1 悉尼引入。
有几点需要注意:
- 可以从同一个线程递归调用读访问,但写访问不能 - 它会在 Windows 上死锁并在 Posix 平台上引发异常
- 读取权限无法升级为写入权限。
在所有平台上(windows 除外)TMultiReadExclusiveWriteSynchronizer
是一个 TSimpleRWSync
,内部只使用 Tmonitor.enter
/ Tmonitor.exit
,这很糟糕,因为只有一次读取一个权限。他们是否等同于 TMultiReadExclusiveWriteSynchronizer
(windows 版本),适用于 Android/iOS?
在 System.SyncObjs
中有 TLightweightMREW
记录在所有平台上作为原生 OS 实现的精简包装器完全实现。在 10.4.1 悉尼引入。
有几点需要注意:
- 可以从同一个线程递归调用读访问,但写访问不能 - 它会在 Windows 上死锁并在 Posix 平台上引发异常
- 读取权限无法升级为写入权限。