锁机制

作者: Mythqian | 来源:发表于2021-03-12 18:00 被阅读0次

    1、死锁


    1.png
    2.png

    2、活锁:多个线程一直在执行无意义的工作,消耗资源


    3.png

    3、悲观锁和乐观锁
    (1)Synchornize 悲观锁:先锁住再执行业务操作
    (2)CAS乐观锁:先执行业务操作再判断
    4、自旋锁:CAS
    (1)概念:利用现代处理器都支持的CAS指令,执行时间0.6ns
    (2)流程:


    4.png

    (3)存在的问题:ABA问题,一个线程改动过值后又改回原值,另一个线程进行CAS无法感知!(增加一个版本号进行解决~),jdk提供两个类:①AtomicMarkableReference :标记共享变量有没有被改变过;②AtomicStampedReference :标记共享变量有没有被改变过,并且被改变过几次;
    (4)局限:只能保证对一个共享变量进行原子操作(解决方法:AtomicReference )

    相关文章

      网友评论

          本文标题:锁机制

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