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 都可以保证内存可见性。

  • 相关阅读:
    uva-11361
    HDU
    LCS
    CodeForces
    linux 有趣的命令组合
    opencv识别封闭区域 并标记该区域
    宜出行人口热力图
    美团酒店
    赶集租房
    发送企业微信应用通知
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15440817.html
Copyright © 2011-2022 走看看