java多线程与并发之java并发编程实践
来源:互联网 发布:php ahp和jhp 编辑:程序博客网 时间:2024/05/17 01:57
文章来源:http://blog.csdn.net/fhd001/article/details/6786932
并发集合(三)
----------
使用ConcurrentMap实现类
java.util.concurrent.ConcurrentMap接口和ConcurrentHashMap实现类只能在键不存在时将元素加入到map中,只有在键存在并映射到特定值时才能从map中删除一个元素。主要定义了下面几个方法(K表示键的类型,V表示值的类型):
1. V putIfAbsent(K key,V value) : 如果指定键已经不再与某个值相关联,则将它与给定值关联。
2. boolean remove(Object key,Object value) : 只有目前将键的条目映射到给定值时,才移除该键的条目。
3. boolean replace(K key,V oldValue,V newValue) : 只有目前将键的条目映射到给定值时,才替换该键的条目。
4. V replace(K key,V value) : 只有目前将键的条目映射到某一值时,才替换该键的条目。
putIfAbsent()方法用于在map中进行添加。这个方法以要添加到ConcurrentMap中的键的值为参数,就像普通的put()方法,但是只有在map不包含这个键时,才能将键加入到map中。如果map已经包含这个键,那么这个键的现有值就会保留。putIfAbsent()方法是原子的。等价于下面的代码(除了原子地执行此操作之外):
- if(!map.containsKey(key))
- return map.put(key,value);
- else
- return map.get(key)
- if(map.containsKey(key) && map.get(key).equals(value)){
- map.remove(key);
- return true;
- }else return false;
0 0
- java多线程与并发之java并发编程实践(一)
- java多线程与并发之java并发编程实践(二)
- java多线程与并发之java并发编程实践(三)
- java多线程与并发之java并发编程实践(四)
- java多线程与并发之java并发编程实践(五)
- java多线程与并发之java并发编程实践(六)
- java多线程与并发之java并发编程实践(七)
- java多线程与并发之java并发编程实践(八)
- java多线程与并发之java并发编程实践(九)
- java多线程与并发之java并发编程实践(十)
- java多线程与并发之java并发编程实践
- java多线程与并发之java并发编程实践
- java多线程与并发之java并发编程实践
- Java 多线程与并发编程
- Java 多线程与并发编程
- Java 多线程与并发编程
- Java 多线程与并发编程
- java多线程(2):并发编程实践
- STM32的栈增长和大端/小端问题是和CPU相关的两个问题
- Java利用httpasyncclient进行异步HTTP请求
- Android设置应用程序默认语言
- myeclipse如何打jar包
- ubuntu 下的PDF阅读器(超级好使)
- java多线程与并发之java并发编程实践
- 为什么所有浏览器的userAgent都带Mozilla
- Ubuntu 12.04下NFS安装配置图解
- ramfs,tmpfs,rootfs,initramfs和romfs
- 基于.NET的多线程
- C++链表实现
- 开源SlidingMenu笔记(二)
- IDA下MD5算法F5特征
- 红黑树