synchronized 与 Lock的区别
-
Lock是显式锁(手动开启和关闭锁)
-
synchronized是隐式锁,除了作用域自动释放
-
Lock只有代码块锁,synchronized有代码块锁和方法锁
-
使用Lock锁,JVM将花费较少的时间来调度线程,性能更好,并且具有更多的扩展性(提供更多子类)
-
优先使用顺序
Lock锁的使用方
ReentrantLock lock=new ReentrantLock();
lock.lock();
lock.lock.unlock();
解决线程通信的方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210304164402948.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2ODI5MTE5,size_16,color_FFFFFF,t_70#pic_center)