`
zuimeitulip
  • 浏览: 58450 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

线程安全和不安全的集合列

阅读更多

java集合里面的ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap等都是线程不安全的,如果程序中有多个线程可能访问以上这些集合,那么我们可以使用Collections提供的静态方法把这些集合包装成线程安全的集合。Collections提供了如下几个静态方法。

<T> Collection <T> synchronizedCollection(Collection<T>c)

static<T>List<T>synchronizedList(List<T>list)

static<K,V>Map<K,V>synchronizedMap(Map<k,v>m)

static<T>Set<T>synchronizedSet(Set<T>s)

static<K,V>StoredMap<K,V>synchronizedStoredMap(StoredMap<K,V>m)

static<T>StoredSet<T>synchronizedStoredSet(StoredSet<T>s)

例如:HashMap m = Collections.synchronizedMap(new HashMap());

线程安全的结合类

以Concurrent开头的集合类,如ConcurrentHashMap,ConcurrentSkipListMap,ConcurrentSkipListSet,

ConcurrentLinkedQueu。

以CopyOnWrite开头的集合类,如CopyOnWriteArrayList,CopyOnWriteArraySet

分享到:
评论

相关推荐

    C#精髓中文版

    不安全代码和指针 预处理指令 xml文档 第三章.net框架编程 公用类型 数学 字符串 集合 正则表达式 输入/输出 联网 线程 配件 反射 定制属性信息 自动内存管理 同本机dll互操作 与com互操作 第四...

    面试官都扯不过你系列之集合框架类总结

    集合类全息图哪些集合类是线程安全的?Java集合的快速失败机制 “fail-fast”?什么是迭代器iterator和ListIterator的区别Collection和Collections的区别Comparable和Compartor接口是干什么,列出区别heap 和stack ...

    sysinternals 工具集合 (20090226版)

    它可以在 Windows NT 4 和更高版本上运行,而且其输出会列出注册表和文件系统 API 的差异,从而可以指出是否存在用户模式或内核模式 Rootkit。RootkitRevealer 可以成功检测出在 www.rootkit.com 上发布的所有永久性...

    SysinternalsSuite windows工具集合

    ListDLLs: 列出当前载入的所有 DLLs 及他们的位置和版本。2.0 版可以显示已载入模组的完整路径名. LiveKd: 在live(CD) 系统中使用 Microsoft 内核调试器或MS 内核调试工具Windbg . LoadOrder: 查看 WinNT/2K 中...

    JAVA面试题最全集

    数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现...

    cogutil:几个组件使用的非常低级的C ++编程实用程序

    这些包括: 线程安全的队列,堆栈和集合异步方法调用者线程安全资源池线程安全的回溯打印高性能信号插槽随机比赛选择操作系统可移植性层。 主要项目站点位于先决条件要构建OpenCog实用程序,需要下面列出的软件包。...

    疯狂JAVA讲义

    7.8.4 设置不可变集合 288 7.9 烦琐的接口:Enumeration 289 7.10 本章小结 290 本章练习 290 第8章 泛型 291 8.1 泛型入门 292 8.1.1 编译时不检查类型的异常 292 8.1.2 手动实现编译时检查类型 293 8.1.3 ...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    93.使servlet成为线程安全的 94.访问标准的CGI变量 95. servlet之间及与jsp间的通讯 96.获取当前绝对路径 97.在servlet中操作cookie 98.使用servlet生成JPEG图象 99.在servlet中根据请求参数自动填充java对象 100.将...

    士农库1.1 头文件、lib、dll 两个测试项目

     用临界区实现的线程锁,和线程读写锁。  窗口辅助类。  开启一个线程并调用一个函数。  开启一个线程并循环调用一个函数。  支持多线程的日志。  启动一个线程,等待若干秒后,Post或Send一个消息后,...

    GDI/GDI+ SDK 参考手册 中文资料

    GDI+的安全考虑 6 检验构造函数调用成功与否 6 分配缓冲区 6 错误校验 8 线程同步 9 相关主题 10 关于GDI+ 11 GDI+ 介绍 11 GDI+ 概览 11 GDI+ 的三个组成部分 11 基于类的接口架构 12 GDI+提供了哪些新东西? 12 新...

    GDI+帮助文档

    GDI+的安全考虑 6 检验构造函数调用成功与否 6 分配缓冲区 6 错误校验 8 线程同步 9 相关主题 10 关于GDI+ 11 GDI+ 介绍 11 GDI+ 概览 11 GDI+ 的三个组成部分 11 基于类的接口架构 12 GDI+提供了哪些新...

Global site tag (gtag.js) - Google Analytics