A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

synchronized 和java.util.concurrent.locks.Lock 的有什么不同

4 个回复

倒序浏览
主要相同点:Lock 能完成synchronized 所实现的所有功能;主要不同点:Lock 有比synchronized 更精确的线程语义和更好的性能。synchronized 会自动释放锁,而Lock 一定要求程序员手工释放,并且必须在finally 从句中释放

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
lock是JDK5.0过后,synchronized的更新版,他能实现synchronized 的所有功能,并且改进了同步的灵活行,和新的唤醒机制。
lock对象可以实例化多个condition对象,通过condition对象可以有选择的唤醒其他线程;
另外,new Lock().lock():加锁、   new Lock().unlock():释放锁    看起来更有条理;

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
lock是升级版的
回复 使用道具 举报
主要相同点:Lock能完成Synchronized所实现的所有功能。

主要不同点:Lock有比Synchronized更精确的县城予以和更好的性能。Synchronized会自动释放锁,但是Lock  一定要求程序员手工释放,并且必须在finally从句中释放。
synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列
如果实例化不同的对象 那么synchronized就不会出现同步效果了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马