同步集合在java中是什么意思。如果我从servlet打印jsp页面中的用户记录,可以选择哪个开发应用程序?可以选择以下
答案 0 :(得分:1)
同步是控制多个线程对任何共享资源的访问的能力。
java.util.Collections
类synchronizedCollection(),synchronizedSet(),
synchronizedSortedMap(),synchronizedSortedSet()
的同步集合类 Hashtable 和 Vector 以及 static 方法提供了Map,List和Set的基本条件线程安全实现。
正如 Javadocs 所说 - 如果不需要线程安全的实现,建议使用HashMap代替Hashtable。如果需要线程安全的高度并发实现,那么建议使用ConcurrentHashMap代替Hashtable。
Hashtable
和ConcurrentHashMap
之间的区别:ConcurrentHashMap仅锁定了Map的某些部分,而Hashtable在执行迭代时锁定了完整的地图
ConcurrentHashMap
旨在实现并发性和提高性能,而HashMap
本质上不同步的Collections.synchronizedMap()
可以通过使用ConcurrentHashMap
应用包装来同步。
区别:HashMap
不允许空键或空值,而{{1}}允许空键。
答案 1 :(得分:0)
同步集合是对多个线程的并发更新进行线程安全的集合。一般来说,在Java中:
至于JSP问题,这实际上取决于。如果您要跨多个线程共享相同的地图实例(例如,如果它"全局"在应用程序中),则使用ConcurrentHashMap。如果你在一个请求中创建它,那么在你完成之后就把它删除,并且它从未在另一个线程中使用过,那么只需使用HashMap。
this问题还有一些细节。