课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java的显示锁
  • java的显示锁

    发布:昆明Java培训      来源:达内新闻      时间:2016-11-17

  • 显示锁

    昆明Java培训机构的老师知道基于synchronized关键字的锁机制有以下问题:

    锁只有一种类型,而且对所有同步操作都是一样的作用

    锁只能在代码块或方法开始的地方获得,在结束的地方释放

    线程要么得到锁,要么阻塞,没有其他的可能性

    Java 5对锁机制进行了重构,提供了显示的锁,这样可以在以下几个方面提升锁机制:

    可以添加不同类型的锁,例如读取锁和写入锁

    可以在一个方法中加锁,在另一个方法中解锁

    可以使用tryLock方式尝试获得锁,如果得不到锁可以等待、回退或者干点别的事情,当然也可以在超时之后放弃操作

    显示的锁都实现了java.util.concurrent.Lock接口,主要有两个实现类:

    ReentrantLock–比synchronized稍微灵活一些的重入锁

    ReentrantReadWriteLock–在读操作很多写操作很少时性能更好的一种重入锁

    对于如何使用显示锁,可以参考我的Java面试系列文章《Java面试题集51-70》中第60题的代码。只有一点需要提醒,解锁的方法unlock的调用最好能够在finally块中,因为这里是释放外部资源最好的地方,当然也是释放锁的最佳位置,因为不管正常异常可能都要释放掉锁来给其他线程以运行的机会。

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:java编程的原子类

下一篇:java就业前景还没到饱和状态

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:12/29

Java--零基础业余班

Java--零基础业余班

开班日期:12/29

Java--周末提升班

Java--周末提升班

开班日期:12/29

Java--零基础周末班

Java--零基础周末班

开班日期:12/29

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56