java集合的进一步思考

我们都知道数据库的事务级别分为了四种,如本文后面的表格所示,事务隔离级别越高并发性越差但是数据越安全。由此我想到了java里面的集合。举例来说Map接口。

HashMap这个是最基础的Map实现,他不是线程安全的,对应着有点和数据库最低的事务级别相似;

HashTable这个是目前已经废弃或者是官方不在建议使用的类了,因为他虽然是线程安全的但是他的并发性太低了,锁全数组,这个就相当于数据表里面的顺序话吧,太严格了,性能有问题了也不会大规模的推荐;

ConcurrentHashMap如果是多线程用到的话,现在官方推荐的是这个类,这个类把整个数组分成了若干份,每一份单独享用一个自己的锁,这样的话能够大大增加并发数。但是就像Repeatable ready会出现幻读一样,这个类也会出现类似的现象,对于需要检索全数组的情况。

今天做了这个小小的总结对比不知道对不对,欢迎留言讨论

我的博客

 

√: 可能出现    ×: 不会出现

 脏读不可重复读幻读
Read uncommitted
Read committed×
Repeatable read××
Serializable×××

转载于:https://my.oschina.net/u/1455908/blog/842120

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值