java中的同步容器和并发容器
2015-09-30 17:03
701 查看
JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都
串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开
始针对多线程并发访问设计,提供了并发性能较好的并发容器,引入了java.util.concurrent包。与Vector和Hashtable、
Collections.synchronizedXxx()同步容器等相比,util.concurrent中引入的并发容器主要解决了两个问题:
1)根据具体场景进行设计,尽量避免synchronized,提供并发性。
2)定义了一些并发安全的复合操作,并且保证并发环境下的迭代操作不会出错。
同步容器其实指的就是有加同步访问控制,如vector,hashtable,collections.synchronizedXXX等方法得到的容器,一般都是通过synchronize达到同步的目的。但是不能保证并发环境下的正确。
而并发容器就像上面说的优点。
串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开
始针对多线程并发访问设计,提供了并发性能较好的并发容器,引入了java.util.concurrent包。与Vector和Hashtable、
Collections.synchronizedXxx()同步容器等相比,util.concurrent中引入的并发容器主要解决了两个问题:
1)根据具体场景进行设计,尽量避免synchronized,提供并发性。
2)定义了一些并发安全的复合操作,并且保证并发环境下的迭代操作不会出错。
同步容器其实指的就是有加同步访问控制,如vector,hashtable,collections.synchronizedXXX等方法得到的容器,一般都是通过synchronize达到同步的目的。但是不能保证并发环境下的正确。
而并发容器就像上面说的优点。
相关文章推荐
- Java五个最常用的集合类之间的区别和联系
- spring 级联属性
- java 时间字符串和时间戳(长整形long)之间的互转
- java基本类型和封装类型区别及应用
- java基本类型和封装类型区别及应用
- eclipse快捷键大全
- Java面向对象:封装、继承、多态
- Spring+Struts2+Hibernate三大框架整合常见问题解析
- 一种排序 Java实现
- 简单总结一下java中的容器----持有对象
- Android Studio如何更改JDK和SDK的路径
- Could not resolve view with name 'ok' in servlet with name 'spring'
- java并发(synchronized 4 种用法 )
- Java多线程[3]:线程同步(互斥)
- springMVC将bean注入controller
- Spring transaction事务之roll back回滚
- Struts2 的应用及其常用配置参数
- JAVA程序运行原理——知其然,而知其所以然
- Eclipse使用Maven导入Robotium源码后报错
- 纪念起始之源-Hello World