首页 财经 金融 消金 银行 保险 区链 证金 会展 贵金属 关于我们 网站地图
首页/风险报告

1

collections.synchronizedmap将方法上锁实现线程安全
2021-01-25

众所周知,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时,就会将方法上锁,实现线程安全。

声明:该文系信息发布IT手机金融仅提供信息存储空间服务,如有异意请邮件联系Email:374945810@qq.com 我们将及时进行处理!
点赞
来源:
信誉评估更多
金融会展更多
风险报告更多
热搜排行更多

CopyRight@2015-2026 IT手机金融 All Right Reserved

工信备案号:沪备A2-2009513

IT手机金融把握金融方向评估投资领域