0

我可以仅在单元初始化中在通用列表或字典中添加项目,然后将其用作多个线程的只读吗?

我阅读了一个线程安全的主题TList<T>和另一个TDictionary<T>不是线程安全的主题。两者之间会有什么区别?

4

1 回答 1

3

阅读是安全的,写作不是。只要您可以确保TList/TDictionary在任何线程访问它之前填充它,并且您只是检索项目,而不是添加/修改项目,那么它是安全的。但是,最好不要依赖这种行为。您应该始终明确地同步访问跨线程的共享资源,例如 with TCriticalSectionTMutexTMREWSync(或 Win32 SRW 锁)TMonitor等。

于 2017-08-12T17:40:26.970 回答