zoukankan      html  css  js  c++  java
  • Java ConcurrentHashMap存入引用对象时也是线程安全的

    本人小白,看到资料说ConcurrentHashMap是线程安全的,get过程不需要加锁,put是线程安全的,推荐高并发时使用.但是本人不清楚是否该map中存入的引用类型对象,对象属性变化也是否线程安全的,看了很多资料,貌似都没说明这一点,所以写代码测试一下,

    package testConcurrentHashMap;
    
    import java.util.concurrent.ConcurrentHashMap;
    
    /**
     * Created by xuzimian on 17-3-1.
     */
    public class testConcurrentHashMap {
     public ConcurrentHashMap<String,TestModel> map=new ConcurrentHashMap();
    
        public void testFunc(){
    
            map.put("test",new TestModel(1));
    
            Thread thread = new Thread() {
                @Override
                public void run() {
                    int n=0;
                    while (n<100){
                        System.out.println("线程1" + ":" + map.get("test"). getValue());
                        map.get("test").setValue(map.get("test").getValue()+1);
                        n++;
                        //ConcurrentUtils.sleep(10);
                        try {
                            Thread.sleep(60);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
    
                }
            };
            thread.run();
    
    
            Thread thread1 = new Thread() {
                @Override
                public void run() {
                    int n = 0;
                    while(n<100) {
                        System.out.println("线程2" + ":" + map.get("test"). getValue());
                        n++;
                        ConcurrentUtils.sleep(1);
                    }
                }
            };
            thread1.run();
    
        }
    
    
    }
    

      

  • 相关阅读:
    XML Schema的基本语法(转)
    Lambda 表达式参考
    LINQ查询表达式示例
    Jackson ObjectMapper类使用解析
    hdu 1242 c++ 广搜
    poj 1111 新手路过
    poj 1664 放苹果
    poj 3126 简单广搜题
    poj 1256 全排列
    HDU 2544 最短路
  • 原文地址:https://www.cnblogs.com/xuzimian/p/6648711.html
Copyright © 2011-2022 走看看