Synchronized 关键字 是JDK内部实现的锁,俗称“隐示锁”。控制轮廓小,比如多个线程同时访问锁的方法,其中获取锁的线程由于某个操作导致假死了,一直释放不了锁,其他的线程就必须等待,最终导致系统崩溃。
Lock 接口,JDK定义了“显示锁”的标准,内部提供了tryLock() lock() lockInterruptibly() unlock()等方法,更加可控的使用锁。lockInterruptibly()方法提供可中断锁,当线程堵塞时,调用线程的interupt()中断方法则可中断堵塞的线程,从而不至于线程一直堵塞下去。