zoukankan      html  css  js  c++  java
  • Synchronized与Lock的区别和优缺点

    1.  synchronized 是 Java 的一个内置特性关键字,而 Lock 是 Java 的一个接口类;

    2.  synchronized 在发生异常时会自动释放线程占用的锁,而 Lock 在发生异常时(不发生也一样)需要主动在 finally 中调用 unLock() 去释放锁;

    3.  Lock 可以让等待锁的线程响应中断,而 synchronized 无法响应中断,会一直等待下去;

    4.  Lock 可以知道有没有成功获取到锁,而 synchronized 无法办到;

    5.  Lock 可以提高多线程进行读操作的效率,而 synchronized 不可以;

    6.  在性能上来说如果竞争资源不激烈则两者差距不大,如果竞争资源非常激烈(很多线程同时抢占)时 Lock 的性能远远好于 synchronized;

    7.  不过要注意 Lock 只能中断阻塞中的线程,一旦获取到锁进入运行状态就无法中断;

    8.  Lock 和 synchronized 都可以保证内存可见性。

  • 相关阅读:
    spring 管理struts2的一个问题
    Log4j的使用
    json
    jbpm
    jbpm的开发流程
    HTML5 INPUT新增属性
    JQuery Mobile
    struts2配置中通配符
    2010新的开始,先留个脚印。:)
    EyesBaby1.0使用帮助文档
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15440817.html
Copyright © 2011-2022 走看看