Java并发编程类学习四(线程安全的类)
2015-12-25 17:21
337 查看
同步容器类
Vector和Hashtable是重量级线程安全的,不建议使用。另外还可以用Collections.synchronizedXXXX工厂方法同步类。并发容器
ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque、ConcurrentSkipListSet和CopyOnWriteArrayList等等。他们都是线程安全的。阻塞容器
ArrayBlockingQueue:基于数组实现的一个阻塞队列,在创建ArrayBlockingQueue对象时必须制定容量大小。并且可以指定公平性与非公平性,默认情况下为非公平的,即不保证等待时间最长的队列最优先能够访问队列。LinkedBlockingQueue和LinkedBlockingDeque:基于链表实现的一个阻塞队列,在创建LinkedBlockingQueue对象时如果不指定容量大小,则默认大小为Integer.MAX_VALUE。
PriorityBlockingQueue:以上2种队列都是先进先出队列,而PriorityBlockingQueue却不是,它会按照元素的优先级对元素进行排序,按照优先级顺序出队,每次出队的元素都是优先级最高的元素。注意,此阻塞队列为无界阻塞队列,即容量没有上限(通过源码就可以知道,它没有容器满的信号标志),前面2种都是有界队列。
DelayQueue:基于PriorityQueue,一种延时阻塞队列,DelayQueue中的元素只有当其指定的延迟时间到了,才能够从队列中获取到该元素。DelayQueue也是一个无界队列,因此往队列中插入数据的操作(生产者)永远不会被阻塞,而只有获取数据的操作(消费者)才会被阻塞。
原子类
AtomicBoolean – 原子布尔AtomicInteger – 原子整型
AtomicIntegerArray – 原子整型数组
AtomicLong – 原子长整型
AtomicLongArray – 原子长整型数组
AtomicReference – 原子引用
AtomicReferenceArray – 原子引用数组
AtomicMarkableReference – 原子标记引用
AtomicStampedReference – 原子戳记引用
AtomicIntegerFieldUpdater – 用来包裹对整形 volatile 域的原子操作
AtomicLongFieldUpdater – 用来包裹对长整型 volatile 域的原子操作
AtomicReferenceFieldUpdater – 用来包裹对对象 volatile 域的原子操作
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树