synchronized 与 Lock锁

lock是synchronized的升级版

wait 时记得使用while判断,以免虚假唤醒

其中lock需要手动释放

lock的等待唤醒对应 await(),single()

lock可以设置公平锁

可以拥有多个condition去await和single