黑马程序员技术交流社区

标题: synchronized 和java.util.concurrent.locks.Lock 的异同 [打印本页]

作者: shi0000    时间: 2014-4-12 19:17
标题: synchronized 和java.util.concurrent.locks.Lock 的异同
synchronized 和java.util.concurrent.locks.Lock 的有什么不同
作者: muma    时间: 2014-4-12 19:18
主要相同点:Lock 能完成synchronized 所实现的所有功能;主要不同点:Lock 有比synchronized 更精确的线程语义和更好的性能。synchronized 会自动释放锁,而Lock 一定要求程序员手工释放,并且必须在finally 从句中释放

作者: 四川男人    时间: 2014-4-13 00:16
lock是JDK5.0过后,synchronized的更新版,他能实现synchronized 的所有功能,并且改进了同步的灵活行,和新的唤醒机制。
lock对象可以实例化多个condition对象,通过condition对象可以有选择的唤醒其他线程;
另外,new Lock().lock():加锁、   new Lock().unlock():释放锁    看起来更有条理;
作者: 何伟超    时间: 2014-4-13 00:51
lock是升级版的
作者: wangkerui    时间: 2014-4-13 09:05
主要相同点:Lock能完成Synchronized所实现的所有功能。

主要不同点:Lock有比Synchronized更精确的县城予以和更好的性能。Synchronized会自动释放锁,但是Lock  一定要求程序员手工释放,并且必须在finally从句中释放。
synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列
如果实例化不同的对象 那么synchronized就不会出现同步效果了。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2