zoukankan      html  css  js  c++  java
  • lock和synchronized如何选择?

    1.lock是一个接口,而synchronized是java关键字,synchronized是内置的语言实现。

    2.synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁,而lock在发生异常时,如果没有主动unlock释放锁,则很可能造成死锁。因此使用lock时需要在finally块中释放锁。

    3.lock可以让等待锁的线程响应中断,而synchronized不行,使用synchronized时,等待的线程会一直等待下去,不能响应中断。

    4.lock可以提高多个线程进行读操作的效率。

    5.通过lock可以知道有没有成功获取锁,synchronized不可以。

    总结:从性能上来说,如果竞争资源不激烈,两者的性能差不多,而竞争资源非常激烈时,此时lock的性能要远远优于synchronized,所以,在具体使用时候,要根据适当情况进行选择。

  • 相关阅读:
    模拟测试48
    模拟测试47
    模拟测试46
    NOIP模拟测试29(A)
    NOIP模拟测试19
    NOIP模拟测试18(T3待更新)
    杂题
    noip模拟测试18 T2搜索
    noip模拟测试17 2019-08-11 考后反思
    noip模拟测试14 20190807 考试反思
  • 原文地址:https://www.cnblogs.com/liu-xiaolong/p/11101628.html
Copyright © 2011-2022 走看看