• BobWen
    2019-11-08
    synchronized和lock的最大的不同,我想是在解决synchronized的死锁问题,使用synchronized一旦出现死锁就阻塞在那里无法解锁。而lock如果获取锁失败,有相应的处理机制,可以释放掉已持有的锁,这样就死锁问题就得到了更好的解决。

    作者回复:
    嗯呐,这是很重要的一方面。trylock有时候挺有用的。

    
    
  • 到不了的塔
    2019-10-27
    lock锁和条件变量和synchronized同步以及wait感觉作用是一一对应的,我想问一下lock锁比synchronized强在哪,什么情况下用lock,什么情况下用synchronized

    作者回复:
    不知道用什么情况下就用synchronized。

    lock用代码实现的,更灵活一点。cas不需要进入内核调用,理论上更快,但是要记得finally释放锁。lock还有timeout和trylock,功能上也更灵活一些。
    synchronized更简单一点,语法层面可以避免使用错误。而且synchronized也随着新的JVM升级效率更高了。

     1
    
我们在线,来聊聊吧