Android 中的 HashMap、SparseArray:多线程问题?

Gun*_*ein 5 multithreading android hashmap sparse-array concurrenthashmap

我知道 HashMap 和 SparseArray 都不是线程安全的。如果我有一个中央数据存储库作为 HashMap 可以被活动访问,并且可能被 AsyncTask 访问,我是否必须担心?

为了安全起见,建议使用 HashTable 或更好的 ConcurrentHashMap 吗?

Al *_*ang 4

是的,您必须担心线程安全。每当您围绕 HashMap 或 SparseArray 进行 IO 时,都可以使用 HashTable、ConcurrentHashMap 或同步块。同步块的行为有点不同,并且可能会更慢,但对于简单的应用程序来说,这可能不会成为问题。