Java并发之Condition接口

目录

Condition 接口简介

任意一个 Java 对象都拥有一组监视器方法(定义在 java.lang.Object 上),主要包括 wait()、wait(long timeout)、notify() 以及 notifyAll() 方法,这些方法与 synchronized 同步关键字配合,可以实现线程之间的等待,通知(通信)

Condition 接口也提供了类似 Object 的监视器方法,与 Lock 配合也可以实现线程之间的等待,通知(通信),但是这两者在使用方式以及功能特性上还是有差别的

对比 Object 的监视器方法和 Condition 接口

对比项 Object 监视器方法 Condition
前置条件 获取对象的锁 1.调用Lock.lock()获取 2.调用Lock.newCondition()获取Condition对象
调用方式 直接调用,如object.wait() 直接调用,如condition.await()
等待队列个数 一个 多个
当前线程释放锁并进入等待状态 支持 支持
当前线程释放锁并进入等待状态,在等待状态中不响应终端 不支持 支持
当前线程释放锁并进入超时等待状态 支持 支持
当前线程释放锁并进入等待状态到将来的某个时间 不支持 支持
唤醒等待队列中的一个线程 支持 支持
唤醒等待队列中的全部线程 支持 支持
上一篇:mybatis-plus遇见带有关键字的错误


下一篇:JUC编程(一)-Lock锁,Condition