Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我可以仅在单元初始化中在通用列表或字典中添加项目,然后将其用作多个线程的只读吗?
我阅读了一个线程安全的主题TList<T>和另一个TDictionary<T>不是线程安全的主题。两者之间会有什么区别?
TList<T>
TDictionary<T>
阅读是安全的,写作不是。只要您可以确保TList/TDictionary在任何线程访问它之前填充它,并且您只是检索项目,而不是添加/修改项目,那么它是安全的。但是,最好不要依赖这种行为。您应该始终明确地同步访问跨线程的共享资源,例如 with TCriticalSection、TMutex、TMREWSync(或 Win32 SRW 锁)TMonitor等。
TList
TDictionary
TCriticalSection
TMutex
TMREWSync
TMonitor