Android 中的 HashMap、SparseArray:多线程问题?
HashMap, SparseArray in Android: multithread a concern?
我知道 HashMap 和 SparseArray 都不是线程安全的。如果我有一个像 HashMap 这样的中央数据存储库,它可以被 activity 访问并且可能被 AsyncTask 访问,我是否需要担心?
为了安全起见,是否建议使用 HashTable 或更好的 ConcurrentHashMap?
是的,您将不得不担心线程安全。每当围绕 HashMap 或 SparseArray 执行 IO 时,您都可以使用 HashTable、ConcurrentHashMap 或同步块。同步块的行为有点不同,可能会更慢,但对于简单的应用程序,这可能不是问题。
我知道 HashMap 和 SparseArray 都不是线程安全的。如果我有一个像 HashMap 这样的中央数据存储库,它可以被 activity 访问并且可能被 AsyncTask 访问,我是否需要担心?
为了安全起见,是否建议使用 HashTable 或更好的 ConcurrentHashMap?
是的,您将不得不担心线程安全。每当围绕 HashMap 或 SparseArray 执行 IO 时,您都可以使用 HashTable、ConcurrentHashMap 或同步块。同步块的行为有点不同,可能会更慢,但对于简单的应用程序,这可能不是问题。