synchronized和Lock有什么区别?

        ①:synchronized是JVM层面实现的,java提供的关键字,Lock是API层面的锁。

        ②:synchronized不需要手动释放锁,底层会自动释放,Lock则需要手动释放锁,否则有可能导致死锁

        ③:synchronized等待不可中断,除非抛出异常或者执行完成, Lock可以中断,通过interrupt()可中断

            

        ④: synchronized是非公平锁,  Lock是默认公平锁,当传入false时是非公平锁

          

        ⑤:synchronized不可绑定多个条件, Lock可实现分组唤醒需要唤醒的锁

            

发布了174 篇原创文章 · 获赞 173 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45151795/article/details/105760706