美文网首页
java并发艺术学习笔记

java并发艺术学习笔记

作者: lionel880 | 来源:发表于2017-09-12 10:59 被阅读0次

    1.CAS 操作 ,compareAndSet
    http://blog.csdn.net/aesop_wubo/article/details/7537960

    int expect = a;  
    if(a.compareAndSet(expect,a+1)) {  
        doSomeThing1();  
    } else {  
        doSomeThing2();  
    }  
    

    java.util.concurrent.ConcurrentLinkedQueue类全是采用的非阻塞算法,里面没有使用任何锁,全是基于CAS操作实现的。CAS操作可以说是JAVA并发框架的基础,整个框架的设计都是基于CAS操作的。
    可以用CAS在无锁的情况下实现原子操作,但要明确应用场合,非常简单的操作且又不想引入锁可以考虑使用CAS操作,当想要非阻塞地完成某一操作也可以考虑CAS。不推荐在复杂操作中引入CAS,会使程序可读性变差,且难以测试,同时会出现ABA问题。

    2.并发下,hashMap是非线程安全的,而HashTable效率太低,应该使用concurrentHashMap
    hashmap会导致死循环,参考资料https://coolshell.cn/articles/9606.html

    相关文章

      网友评论

          本文标题:java并发艺术学习笔记

          本文链接:https://www.haomeiwen.com/subject/kxqcsxtx.html