1、synchronized不需要手动释放锁,lock需要在锁用完后进行unlock; 2、synchronized只能是默认的非公平锁,lock可以指定使用公平锁或者非公平锁; 3、lock提供的Condition(条件)可以指定唤醒哪些线程,而synchronized只能随机唤醒一个或者全部唤醒;