博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
map线程安全的几种方法
阅读量:6227 次
发布时间:2019-06-21

本文共 538 字,大约阅读时间需要 1 分钟。

hot3.png

1.
使用 synchronized 关键字,代码如下
 
synchronized(anObject) {
        value = map.get(key);
}
2、使用 JDK1.5提供的锁(java.util.concurrent.locks.Lock)。代码如下
 
 
 
 
lock.lock();
 
value = map.get(key);
lock.unlock();
 
 
3、使用 JDK1.5 提供的读写锁(java.util.concurrent.locks.ReadWriteLock)。代码如下
rwlock.readLock().lock(); 
value = map.get(key); 
rwlock.readLock().unlock(); 
4、使用 JDK1.5 提供的 java.util.concurrent.ConcurrentHashMap 类。该类将 Map 的存储空间分为若干块,每块拥有自己的锁,大大减少了多个线程争夺同一个锁的情况。代码如下
value = map.get(key); //同步机制内置在 get 方法中
第四种是最快速的,接近同步操作 

转载于:https://my.oschina.net/hanzhankang/blog/204764

你可能感兴趣的文章
redis实现简单的消息队列(php)
查看>>
MySQL索引的创建、删除和查看
查看>>
汇编 ret,retf和call
查看>>
Java OCR(使用Tess4J)
查看>>
盘点selenium phantomJS使用的坑
查看>>
谈谈angular项目构建中的组织结构
查看>>
web - 实现定时弹出广告
查看>>
linux go环境搭建
查看>>
Groovy中for循环的一个奇怪现象引出的"全局变量?"
查看>>
关于表单的组件 radio select checkbox
查看>>
对chrome开发者工具的有效利用
查看>>
2011年国外最受欢迎的15个社交网站
查看>>
spring中使用logback日志组件替换log4j
查看>>
Wex5开发基础之微信支付
查看>>
JS之prototype基础篇
查看>>
如此熟悉 的梦境
查看>>
Dubbo注册到发布执行流程(原理)
查看>>
win7下centos 7安装
查看>>
暗巷网盘快捷下载器 V1.3绿色中文版
查看>>
如何还原Navicat for SQL Server的备份数据
查看>>