事情起源
天气晴朗,万里无云,我在群中随便了问了个问题。
问题如下:
震惊,我只能说震惊!根据当事人不知道叫什么,咱们况且先叫某猫吧!
看到这个回答我也是惊掉下巴了,一本正经的回答,还tn的都挺对。
区别
- synchronized是虚拟机(JVM)里面的静态函数,而Lock是Java对象类,还是一个接口。
- synchronized是自动上锁、解锁的,相对于Lock来说,需要手动调用lock()和unLock()完成上锁解锁
- lock可以配置公平策略,实现线程按照先后顺序获取锁。相对来说更加灵活。
- lock还是公平锁和非公平锁,默认是非公平锁,如果需要公平锁,直接创建时,ReentrantLock(true)创建对象括号中传送true是公平锁。