在我发现的一些android开源代码中
private Map<ImageView, String> imageViews=Collections.synchronizedMap(new
WeakHashMap<ImageView, String>());
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释我Map和普通的区别collections.synchronizedmap
小智 2
java.util 包中的常规 Map 实现不是线程安全的。这意味着如果多个线程对同一个 Map 进行get()操作put(),可能会导致竞争条件或 Map 中的数据不一致。
要在多线程环境中使用现有的 Map,您可以通过调用 来获取该 Map 的同步实例Collections.synchronizedMap()。在这种情况下,大多数方法(如 、和 )都是同步的get(),并且可以安全地并发使用。
有关这方面的更多信息,请参阅
http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#synchronizedMap(java.util.Map )putkeyset()