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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1659177869 中级黑马   /  2015-2-8 00:36  /  1126 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有人说lock接口代替了synchronized 但是我感觉好多教程上都是对synchronized做了大篇幅介绍,而对lock的介绍和使用都是简单用个例子带过,所以我想问下编程时对二者怎样取舍?

6 个回复

正序浏览
新的东西出现总会有其合理的地方,要不就简化代码,要不就提高效率。。。。。。所以lock使用起来比较方便,而且可以锁的对象比较好操控。。。
回复 使用道具 举报
Lock比synchronized更加灵活,在线程间通信时还可以只唤醒对方线程,但synchronized系统会自动释放锁资源,Lock要手动释放,而且一定要在finally从句中释放:),不知对你有用否
回复 使用道具 举报
那么我们正常编程时,应该侧重于使用lock解决问题?  
肯定啊,lock是1.5的新特性,而且是显式的锁结构。难倒升级之后的新特性咱都不用,然后用老的方法吗。
回复 使用道具 举报
用lock,无论是安全性还是可读性,lock都比单纯的synchornized组合来的要好。
一般视频讲义,将synchornized大篇幅介绍,主要是为了说明其原理与方法。就是教你线程的思想。
感觉一个是过程synchornized,一个封装成类lock。所以lock更符合面向对象的思想。
以上。
有什么不对的地方希望指正。

点评

那么我们正常编程时,应该侧重于使用lock解决问题?  发表于 2015-2-8 19:54
回复 使用道具 举报 1 0
个人认为lock的对象好用,因为冻结和唤醒,在此机制中用到的特定唤醒机制比synchronized的无差别唤醒机制好很多,节约了很多系统资源。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马