• Lock --悲观锁和乐观锁


    1.synchronized   悲观锁(独占锁)

       问题:1.多线程环境下,加锁,释放锁导致导致比较多的上下文切换和调度延迟,影响性能

               2.一个线程持有锁会导致其他需要该锁的线程挂起

        3.线程优先级倒置。线程优先级高的线程等待线程优先级低的线程释放锁

    2.乐观锁 : 假设没有冲突去进行操作,如果因为冲突失败则重试,直到成功

         java.util.concurrency使用乐观锁,具体使用的是CAS(compare and swap )

         CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,

         而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。CAS有3个操

         作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内      存值V相同时,将内存值V修改为B,否则什么都不做。 

       问题: ABA问题

      

  • 相关阅读:
    SpringBoot-Swagger
    SpringBoot-Shiro
    SpringBoot-SpringSecurity
    SpringBoot-整合数据库
    SpringBoot-Web开发
    SpringBoot-基础
    SpringMVC-文件上传和下载
    SpringMVC-拦截器
    SpringMVC-AJAX
    Eclipse的安装
  • 原文地址:https://www.cnblogs.com/fight-tao/p/5295372.html
Copyright © 2020-2023  润新知