作者: 徐振杰 | 来源:发表于2018-11-28 21:56 被阅读0次

    重入锁:ReentrantLock()

    1. tryLock(5, TimeUnit.SECONDS) :可以设置时长和时间单位
    2. tryLock():也可以不用设置参数,尝试获得锁,成功返回true,失败返回false
    3. ReentrantLock(true) :重入锁可以对公平性进行设置,而synchronized是非公平的,公平锁要维护一个有序队列,所以实现成本比较高。
    4. lockInterruptibly():获得锁但是优先响应终端
    5. Condition():通过lock接口Condition()方法可以生成一个Condition对象,他是重入锁的好帮手,里面有await()和signal()与synchronized中的wait()和notify()差不多
    6. Semaphore(5):同时允许多个线程访问一个资源
    7. ReentrantReadWriteLock():由于重入锁对所有的操作都是串行的,而读操作与读操作之间并不对数据的完整性造成破坏,因此有了读写分离锁。
    8. CountDownLatch(10):倒计时器,表示要10个线程完成任务
    9. CyclicBarrier(int parties,Runnable barrierAction):barrierAction:当计数器一次完成计数之后,系统会执行的动作。parties:表示计数的总数
    10. LockSupport : 里面有park()和unpark()可以替代suspend()和resume(),因为LockSupport 为每个线程都准备一个许可,如果许可可用park()会立刻消费这个许可,如果许可不可用,unpark()会放出这个许可。

    相关文章

      网友评论

          本文标题:

          本文链接:https://www.haomeiwen.com/subject/lhuzqqtx.html