zoukankan      html  css  js  c++  java
  • JAVA_Lock

      今天是毕业入职的第一个周末,一直对多线程并发方面的知识比较感兴趣,因为目前我手里的项目并没有涉及到并发方面的知识,所以怕以后遗忘,也便于以后复习和使用,所以总结了一下Lock里面的一些类的方法。具体的代码实现例子我在这里就不做说明解释了,这些方法都比较容易理解和使用,如果实在是忘记的话可以在随时查阅资料即可。

    ReentrantLock

    int getHoldCount():查询当前线程保持此锁定的个数,也就是调用lock方法的次数

    int getQueueLength:返回正等待获取此锁定的线程估计数

    int getWiteQueueLength(Condition condition):返回等待与此锁定相关的给定条件Condition的线程估计数。比如有5个线程,每个线程都执行了同一个condition对象的await()方法,调用它的时候返回的int值是5

    boolean hasQueuedThread(Thread thread):查询指定的线程是否正在等待获取此锁定

    boolean hasQueuedThread():查询是否有线程正在等待获取此锁定

    boolean hasWaiters(Condition condition) :查询是否有线程正在等待此锁定有关的condition条件

    boolean isFair():判断是不是公平锁,默认的情况下ReentrantLock类使用的是非公平锁

    boolean isHeldByCurrentThread():作用是查询当前线程是否保持此锁定

    boolean isLocked():作用是查询此锁定是否由任意的线程保持

    void lockInterruptibly():作用是如果当前线程未被中断,则获取锁定,如果已经被中断则出现异常

    boolean tryLock():作用是仅在调用时锁定未被另一个线程保持的情况下,才获取该锁定。

    boolean tryLock(Long timeout,TimeUnit unit):作用是,如果锁定在给定等待时间内没有被另一个线程保持,且当前线程未被中断,则获取该锁定

    awaiteUntil()

    awaitUnintettuptibly()

    读写锁ReentrantReadWriteLock

    读写锁表示有两个锁,一个是读操作相关的锁,共享锁。一个是写操作相关的锁,排他锁。多个读锁之间不互斥,读锁与写锁互斥,写锁与写锁互斥。

    读写锁的代码例子我就不在这里列出了,想知道的话可以去随意的查询一下资料有很多。

    Lock这块的内容我就暂时先写这么多,后续会继续补充分析他们的源码实现,会有更多的内容涉及到

     

  • 相关阅读:
    17111 Football team
    Train Problem I (HDU 100题纪念)
    迷宫问题
    图形点扫描
    看病要排队(stl)
    水果
    Prime Ring Problem
    N皇后问题
    2^x mod n = 1
    Queuing
  • 原文地址:https://www.cnblogs.com/prayers/p/7467044.html
Copyright © 2011-2022 走看看