A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郝强勇 中级黑马   /  2013-3-16 19:31  /  1263 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在学习集合的时候,因为JDK1.2以后的集合都是线程不同步的,之前的比如Vector都是线程同步的,效率低,但在还是建议用效率较高的新的集合进行加锁,为什么呢?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

正序浏览
很多时候不能同时做到效率和安全的同步的,为了提高效率,只好牺牲安全性了,不过一般安全问题不会太大的。个人理解
回复 使用道具 举报
Vector是强制加锁    也就是不管什么时候用都是只有一个线程能访问,哪怕全部都是查询读取的

collection里面的集合你可以选择性同步,
比如说多个线程只查询,不更改的话,就不用同步,效率更高,
但是一旦涉及到数据增删,就要加同步,不然会出安全问题

我是这么理解的

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马