谈谈synchronized 和 ReentrantLock 的区别?

相同点

        synchronized和ReentrantLock都是Java中的可重入锁;


不同点

        回答思路:缺点 + 优点;

使用方法

        1.synchronized 可以用来修饰普通方法、静态方法和代码块;

        2.ReentrantLock 只能用于代码块,核心用法有三个方法:

lock()      //加锁
unlock()    //解锁 
tryLock()   //尝试加锁

        其中lock()和unlock()这两者之间如果有 return 或者有异常,就可能导致unlock执行不到;

所以若想防止中断可以这样去写(提供了更多可能,如下图)

谈谈synchronized 和 ReentrantLock 的区别?_第1张图片

ReentrantLock具有解决“死等的策略”,提供了更多可能

        从ReentrantL

你可能感兴趣的:(多线程,面试总结,面试)