synchronized 与 Lock的区别
-
Lock是显式锁(手动开启和关闭锁)
-
synchronized是隐式锁,除了作用域自动释放
-
Lock只有代码块锁,synchronized有代码块锁和方法锁
-
使用Lock锁,JVM将花费较少的时间来调度线程,性能更好,并且具有更多的扩展性(提供更多子类)
-
优先使用顺序
Lock锁的使用方
ReentrantLock lock=new ReentrantLock();
lock.lock();
lock.lock.unlock();
解决线程通信的方法