首页焦点IT通讯测评 智机互联网数码电商安全 IPhone客户端   安卓客户端
首页 / 智慧生活 / 正文

实现线程安全collections.synchronizedmap将方法上锁

来源:IT手机新世界
作者:
时间:2020-09-07

众所周知,HashMap本身非线程安全的,但是当使用Collections.synchronizedMap(new HashMap()) 进行包装后就返回一个线程安全的Map。


 创建了一个synchronizedMap,于是就翻了一下源码,看了一下具体的实现,发现底层其实是通过synchronized锁机制实现的,在此记录一下,当作学习心得。
       1、按住ctrl点击进去发现创建了一个synchronizedMap的实例:
       2、再点进去可以看到实际上是在Collections类中维护了一个静态内部类SynchronizedMap,该内部类中维护了一个普通的map和一个对象排斥锁mutex。
       3、在new synchronizedMap()的时候,如果传入了mutex参数,则将对象排斥锁赋值为传入的对象;如果没有,则将对象排斥锁赋值为this,即调用synchronizedMap的对象,也就是该例中的users。
       4、创建出synchronizedMap之后,再操作该map时,就会将方法上锁,实现线程安全。

0
(查看全部0条评论) 请遵守国家新闻相关法规,文明上网发表评论!
    
验证码:  
IT手机新世界
更新时间:2020-06-11
点评(1)
IT手机新世界
更新时间:2020-05-15
点评(1)
要闻推荐更多
热搜排行更多
  • 咨询: 资讯内容纠错答疑在线联系方式
  • Email:8942046898@qq.com
  • CopyRight@2015-2020 IT手机新世界 All Right Reserved
  • 工商营业注册:110101014752254
  • 增值电信业务经营许可证:京备A2-2009413