zoukankan      html  css  js  c++  java
  • ConcurrentMap

    ConcurrentMap接口下有两个重要的实现:

      ConcurrentHashMap

      ConcurrentSkipListMap(支持并发排序功能,弥补ConcurrentHashMap)

    ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的HashTable,他们有自己的锁。只要多个修改操作发生在不同的段上,他们就可以并发进行。

    把一个整体分成了16个段(Segment)。也就是最高支持16个线程的并发修改操作。这也是在多线程场景时减少锁的粒度从而降低锁竞争的一种方案。并且代码中大多共享变量使用volatile关键字声明,

    目的是第一时间获取修改的内容,性能非常好。

    public class UseConcurrentMap {
        public static void main(String[] args) {
            //ConcurrentHashMap在使用方式上和hashMap是相同的
            ConcurrentHashMap<String, Object> chm = new ConcurrentHashMap<String, Object>();
            chm.put("k1", "v1");
            chm.put("k2", "v2");
            chm.put("k3", "v3");
            //下面这个方法的意思是,如果该key存在,那么不做任何操作
            //如果该key不存在,则进行插入操作
            chm.putIfAbsent("k4", "vvvv");
            //System.out.println(chm.get("k2"));
            //System.out.println(chm.size());
            
            for(Map.Entry<String, Object> me : chm.entrySet()){
                System.out.println("key:" + me.getKey() + ",value:" + me.getValue());
            }
        }
    }
  • 相关阅读:
    Android之TCP服务器编程
    太阳能锂电池充电电路
    android之WIFI小车编程详述
    java 之UDP编程
    liunx目录/etc下相关配置
    五:ZooKeeper的集群命令客户端的链接和命令操作的使用
    四:ZooKeeper的集群,伪集群,单机的搭建
    三:ZooKeeper的ZAB协议
    二:ZooKeeper术语概念
    一:ZooKeeper简介
  • 原文地址:https://www.cnblogs.com/dongdone/p/5745091.html
Copyright © 2011-2022 走看看