一、wait(), notify(), notifyAll()等方法介绍

1.wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)

2.notify()和notifyAll()的作用,则是唤醒当前对象上的等待线程;notify()是唤醒单个线程,而notifyAll()是唤醒所有的线程。

3.wait(long timeout)让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的notify()方法或 notifyAll() 方法,或者超过指定的时间量”,当前线程被唤醒(进入“就绪状态”)。

二、wait 的用法详解(这里的t1是一个线程(锁))

// main(主线程)

synchronized(t1) {

try {

t1.start();

t1.wait();

} catch(InterruptedException e) {

e.printStackTrace();

}

}

// 在 t1 线程中唤醒主线程

synchronized (this) { //这里的 this 为 t1

this.notify();

}

注:

1、synchronized(t1)锁定t1(获得t1的监视器)

2、synchronized(t1)这里的锁定了t1,那么wait需用t1.wait()(释放掉t1)

3、因为wait需释放锁,所以必须在synchro

java的wait_java wait()方法用法详解相关推荐

  1. java string()函数_转载java String.split()函数的用法详解

    转载java String.split()函数的用法详解 如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!在java.lang包中有String.split()方法的原型是: p ...

  2. Java(enum)枚举用法详解

    转载自 Java(enum)枚举用法详解 本篇文章主要介绍了Java 枚举用法详解,枚举的好处:可以将常量组织起来,统一进行管理.有兴趣的可以一起来了解一下. 概念 enum的全称为 enumerat ...

  3. java 枚举类型enum的用法详解

    Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要 ...

  4. 《Java基础——break与continue用法详解》

    Java基础--break与continue用法详解 一. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不再进行下一轮 ...

  5. java super实例_java Super 用法详解及实例代码

    java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...

  6. Java基础(七): instanceof用法详解

    1.instanceof说明 instanceof 是 Java 的保留关键字. 作用是:测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型. instanceof是Java中的 ...

  7. java policy_java.policy文件格式及用法详解

    一.Java中安全策略的概念 Java应用程序环境的安全策略,详细说明了对于不同的代码所拥有的不同资源的许可,它由一个 Policy对象来表达.为了让applet(或者运行在 SecurityMana ...

  8. php中sisson用法,thinkPHP中session()方法用法详解

    本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 s ...

  9. Java中类关键字super的用法详解

    今天给大家总结介绍一下Java类中super关键字的用法. 文章目录 super关键字用法: 1.修饰属性,明确表示直接从父类中寻找同名属性 2.在子类中调用父类的方法 3.在子类中调用父类的构造方法 ...

最新文章

  1. Linux (x86) Exploit 开发系列教程之七 绕过 ASLR -- 第二部分
  2. Spring 三种注入方式
  3. layui 分页 固定底部_论layui的使用体验
  4. “约见”面试官系列之常见面试题第二十二篇之函数闭包(建议收藏)
  5. 第四章:更多的bash shell命令
  6. python是什么类型的语言-编程语言分类及python所属类型
  7. 修复:Linux系统机箱前置面板耳机插孔没声音
  8. 计算机端口lpt,教你把USB、COM串口打印机映射到LPT端口
  9. java希腊字母表怎么打印_java 命令行窗口输出希腊字母表
  10. Codeforces 417 D. Cunning Gena
  11. 设计模式之设配器模式、外观模式
  12. uniapp离线打包
  13. 游戏y欧系家角色设计没灵感怎么办?
  14. 【夜读】让自己更幸福的8件小事
  15. 2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛(baseline)
  16. Tushare学习文档(十 电影票房)
  17. 如何判断函数凸或非凸?
  18. Mac 安装使用 OpenCV 图像处理神器
  19. OSG学习之路(一)osg各个库的用途
  20. STP/RSTP/MSTP 精华详解

热门文章

  1. 人工智能python自学教程-人工智能基础教程:Python篇(青少版)
  2. 周期矩形波的傅里叶级数展开(Matlab代码实现)
  3. 《动态壁纸 : 手机壁纸大全》用户协议
  4. 将本地图片转为url网络图片
  5. FIR数字滤波器设计
  6. 音视频7——安卓硬编音视频数据推送到rtmp服务器
  7. springboot集成各类常用中间件(更详细信息请看博主其它文章)
  8. 洛谷P1786 帮贡排序(冒泡排序法)
  9. 进化算法——昂贵、有噪声与动态适应度函数
  10. 实验吧-头有点大 Writeup