zoukankan      html  css  js  c++  java
  • Java多线程编程核心技术,第四章

    1,ReentrantLock

    2,object的wait(),wait(x),notify(),notifyAll(),分别等于Condition的await(),await(x,y),signal(),signalAll()

    3,new ReentrantLock(boolean)boolean可以是公平锁或者非公平锁,默认非公平

    4,lock方法,getHoldCount()当前线程调用lock()数,即调用(锁)了几次

    5,lock方法,getQueueLength()获得等待获得锁的 线程数量

    6,lock方法,getWaitQueueLength(Condition condition)获得condition使用了await()了几次,也是上面的使用了condition的样子,即获得有多少等待这个condition的线程

    7,lock方法,public final boolean hasQueuedThread(Thread x),x线程是否在等待这个锁,hasQueuedThreads()就是不算线程,有就是了

    8,lock方法,public boolean hasWaiter(Condition condition)是否有等待这个condition的线程

    9,lock方法,isFair能看出锁是否公平锁

    10,lock方法,boolean isHeldByCurrentThread(),查询当前线程是否被锁,就是有没有调用lock()

    11,lock方法,isLocked()是否任何线程锁定

    12,lock方法,lock()被interrupt中断不会有异常,用lockInterruptibly()被interrupt会有异常

    13,lock方法,tryLock(),没锁就锁,有锁也不阻塞,tryLock(x),x可以写等待时间

    14,condition方法,wait和sleep被打断会有异常,但用了condition.awaitUninterrupt()就不会有异常

    15,condition方法,awaitUntil(Data deadline),时间到了自动唤醒

    16,condition对signalAll方法有个顺序

    17,读写锁,读写,写读,写写互斥

  • 相关阅读:
    小白的linux笔记3:对外联通——开通ssh和ftp和smb共享
    小白的linux笔记2:关于进程的基本操作
    小白的linux笔记1:CentOS 8 安装与设置
    Python+Flask+MysqL的web技术建站过程
    管理信息系统 第三部分 作业
    数据迁移
    模型分离(选做)
    密码保护
    实现搜索功能
    完成个人中心—导航标签
  • 原文地址:https://www.cnblogs.com/vhyc/p/9188430.html
Copyright © 2011-2022 走看看