Synchronized局限性
synchronized 是 java 内置的关键字,它提供了一种独占的加锁方式。synchronized 的获取和释放锁由 jvm 实现,用户不需要显示的释放锁,非常方便,然而 synchronized 也有一定的局限性,例如:当线程尝试获取锁的时候,如果获取不到锁会一直阻塞,这个阻塞的过程,用户无法控制如果获取锁的线程进入休眠或者阻塞,除非当前线程异常,否则其他线程尝试获取锁必须一直等待JDK1.5 之后发布,加入了 Doug Lea 实现的 java.util.concurrent 包。包