多线程 同步集合类
2017-01-09 18:53
169 查看
多线程并发在操作传统集合的时候,有可能出现死循环(带有while循环的代码)或者抛异常(在使用迭代器的时候),因为需要专门的多线程集合保证集合安全。
1,ConcurrentHashMap.其主要接口方法和HashMap是差不多的。但是,ConcurrentHashMap是使用了ReentranLock(可重入锁机制)来保证在多线程
环境下是线程安全的。
2,ConcurrentLinkedDeque:线程安全的双端队列,当然也可以当栈使用。由于是linked的,所以大小不受限制的。具体API就不多说了。
3,ConcurrentLinkedQueue:线程安全的队列。
4,ConcurrentSkipListMap:基于跳表实现的线程安全的MAP。除了线程安全的特性外,该map还接受比较器进行排序的map,算法复杂度还是log(n)级别的。
。API中提供了一些以前不常使用的方法。以后再具体研究这个跳表的问题。
5,ConcurrentSkipSet:基于4实现的set。
6,CopyOnWriteArrayList:以资源换取并发。通过迭代器快照的方式保证线程并发的访问。
7,CopyOnWriteArraySet:基于6实现的。
1,ConcurrentHashMap.其主要接口方法和HashMap是差不多的。但是,ConcurrentHashMap是使用了ReentranLock(可重入锁机制)来保证在多线程
环境下是线程安全的。
2,ConcurrentLinkedDeque:线程安全的双端队列,当然也可以当栈使用。由于是linked的,所以大小不受限制的。具体API就不多说了。
3,ConcurrentLinkedQueue:线程安全的队列。
4,ConcurrentSkipListMap:基于跳表实现的线程安全的MAP。除了线程安全的特性外,该map还接受比较器进行排序的map,算法复杂度还是log(n)级别的。
。API中提供了一些以前不常使用的方法。以后再具体研究这个跳表的问题。
5,ConcurrentSkipSet:基于4实现的set。
6,CopyOnWriteArrayList:以资源换取并发。通过迭代器快照的方式保证线程并发的访问。
7,CopyOnWriteArraySet:基于6实现的。
相关文章推荐
- HDU-2087 剪花布条 (KMP)
- python练习-if-else-or
- 10分钟搞懂git和github(该教程只适合快速入门)
- 30个php操作redis常用方法代码例子
- AssetBundle 3 (AssetDatabase.GetAllAssetBundleNames and AssetDatabase.GetAllAssetBundleNames)
- 关于maven项目报错,但是找不到问题的所在的一个解决办法
- hive学习
- android_49_BroadcastReceiver_APP的状态监测
- 最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例
- 静态映射表的建立过程
- gdb调试 上干货(每天更新)
- 不借助变量交换a,b值
- 仿微信右滑销毁Activity
- C语言 · 数字三角形
- spring-boot 集成spring-session redis
- UVA 12412 - A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) 模拟题 不好怎么评价
- View事件体系(Android开发艺术探索读书笔记)
- javascript多维数组的排序
- 人工神经网络 backpropagation algorithm
- 如何使用jekyll和github pages搭建博客