栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Condition源码总结 Condition源码注释翻译和解析中英文对照版

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Condition源码总结 Condition源码注释翻译和解析中英文对照版

版本
JDK8(JDK1.8)

Condition 接口源码重点
1.Condition将Object监视方法(Object.wait()、Object.notify() 和Object.notifyAll())分解出来,通过将它们与任意Lock实现相结合,使每个对象具有多个等待集的效果。当Lock替换了synchronized方法和语句时,Condition替换了对象监视器方法的使用。

Lock源码可以看我这篇文章 Lock

2.Condition(也称为条件队列或条件变量)为一个线程提供了一种暂停执行(即等待)的方法, 直到另一个线程通知。Condition提供的关键属性是, 它以原子方式释放关联的锁并挂起当前线程,就像Object.wait()

3.Condition实例本质上绑定到锁。要获取特定Lock实例的Condition实例,请使用其Lock.newCondition() 方法。

4.Condition中定义的所有方法使用之前都必须获取锁,否则会抛出 IllegalMonitorStateException 异常

5.Condition接口中定义的方法

方法名作用
void await()使当前线程等待,直到发出信号(即signal()或signalAll())或Thread.interrupt()
void awaitUninterruptibly()使当前线程等待,直到发出信号。(无法被Thread.interrupt()中断)
long awaitNanos(long nanosTimeout)使当前线程等待,直到发出信号或被中断,或经过指定的等待时间(时间单位:纳秒)
await(long time, TimeUnit unit)使当前线程等待,直到发出信号或被中断,或经过指定的等待时间(时间单位:可自己指定)
boolean awaitUntil(Date deadline)使当前线程等待,直到发出信号或被中断,或者指定的截止日期过去
void signal()唤醒一个正在等待的线程
void signalAll()唤醒所有等待的线程

Condition 接口源码

package java.util.concurrent.locks;

import java.util.Date;
import java.util.concurrent.TimeUnit;


public interface Condition {

    
    void await() throws InterruptedException;

    
    void awaitUninterruptibly();

    
    long awaitNanos(long nanosTimeout) throws InterruptedException;

    
    boolean await(long time, TimeUnit unit) throws InterruptedException;

    
    boolean awaitUntil(Date deadline) throws InterruptedException;

    
    void signal();

    
    void signalAll();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号