1.不能使用Integer作为并发锁 原因:synchronized(Integer)时,当值发生改变时,基本上每次锁住的都是不同的对象实例,想要保证线程安全,推荐使用AtomicInteger之类会更靠谱.使用System.identityHashCode(obj)可以得到根据物理地址算出的hash值. 2.notify()和wait()新认知 notify()是唤醒等待线程,不唤醒的话,即使锁已经空出来了,线程也不会知道去获取: wait()是放弃当前锁,进入睡眠状态,下次唤醒执行开始的地方…