一 wait方法怎么用?

package com.aaa.threaddemo;
/*
* 多线程中的wait方法?
public final void wait() throws InterruptedException {
wait(0);
} 1 隶属于object,因为Java希望把并发控制做到每一个Object里
2 调用wait方法,线程会放弃对象锁,进入等待此对象的等待对象池。
3 只有针对此对象调用notify方法后,本线程才进入对象锁定池,准备获取对象锁,进行运行状态。否则就是一直挂起状态。 *
*
*/
public class WaitDemo {
public static void main(String[] args) throws InterruptedException { // 新建两个线程 测试wait方法。
new Thread(new Runnable() {
public void run() {
// 4.synchronized后面括号里是类,此时,线程获得的是对象锁.
synchronized (WaitDemo.class) {
try {
System.out.println("线程一开始"); //wait 方法 线程会放弃对象锁,进入等待此对象的等待锁定池,此时线程挂起。
WaitDemo.class.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程一结束");
} }
}).start(); new Thread(new Runnable() {
public void run() {
synchronized (WaitDemo.class) {
System.out.println("线程二开始"); //只有针对此对象调用notify方法后,本线程才进入对象锁定池,准备获取对象锁,进入运行状态。
//如果不调用这个方法,线程永远都是刮起的状态。
WaitDemo.class.notify();
System.out.println("线程二结束了");
} }
}).start();
} }

二 测试notify的作用

package com.aaa.threaddemo;
/*
* 多线程中的wait方法?
public final void wait() throws InterruptedException {
wait(0);
} 1 隶属于object,因为Java希望把并发控制做到每一个Object里
2 调用wait方法,线程会放弃对象锁,进入等待此对象的等待对象池。
3 只有针对此对象调用notify方法后,本线程才进入对象锁定池,准备获取对象锁,进行运行状态。否则就是一直挂起状态。 *
*
*/
public class WaitDemo {
public static void main(String[] args) throws InterruptedException { // 新建两个线程 测试wait方法。
new Thread(new Runnable() {
public void run() {
// 4.synchronized后面括号里是类,此时,线程获得的是对象锁.
synchronized (WaitDemo.class) {
try {
System.out.println("线程一开始"); //wait 方法 线程会放弃对象锁,进入等待此对象的等待锁定池,此时线程挂起。
WaitDemo.class.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程一结束");
} }
}).start(); new Thread(new Runnable() {
public void run() {
synchronized (WaitDemo.class) {
System.out.println("线程二开始"); //只有针对此对象调用notify方法后,本线程才进入对象锁定池,准备获取对象锁,进入运行状态。
//如果不调用这个方法,线程永远都是刮起的状态。
// WaitDemo.class.notify();
System.out.println("线程二结束了");
} }
}).start();
} }

Java中的wait方法 简单介绍。的更多相关文章

  1. Java中基本类型和引用类型(简单介绍)

    8种基本类型  一.4种整型 byte      1字节           -128——127     short     2 字节         -32,768 —— 32,767     in ...

  2. java中的泛型,简单介绍。 修饰方法的用法

    一.<R>  ( R  r ) 默认object  可以存所有类型.   R 这个是随便定义的大写字母,前后要保持一致性! package com.aaa.test; /* * 演示 泛型 ...

  3. java中的compareto方法的详细介绍

    java中的compareto方法的详细介绍 Java Comparator接口实例讲解(抽象方法.常用静态/默认方法) 一.java中的compareto方法 1.返回参与比较的前后两个字符串的as ...

  4. java中的compareto方法以及LIst列表排序的详细介绍【转】

    java中的compareto方法的详细介绍 javacompareTo  java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码 String a=&quo ...

  5. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。

    InputStreamReader 和 OutputStreamWriter类使用方法简单介绍. 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是 ...

  6. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等

    Java 中15种锁的介绍 Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等,在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类 ...

  7. java中垃圾收集的方法有哪些?

    java中垃圾收集的方法有哪些? 一.引用计数算法(Reference Counting) 介绍:给对象添加一个引用计数器,每当一个地方引用它时,数据器加1:当引用失效时,计数器减1:计数器为0的即可 ...

  8. Java中15种锁的介绍

    作者:搜云库技术团队 原文:https://segmentfault.com/a/1190000017766364 1. Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观 ...

  9. 浅谈Java中的hashcode方法

    哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: 1 public native int hashCode(); 根据 ...

随机推荐

  1. Problem 2233 ~APTX4869

    Problem 2233 ~APTX4869 Accept: 55    Submit: 176Time Limit: 1000 mSec    Memory Limit : 32768 KB Pro ...

  2. matplotlib 进阶之Tight Layout guide

    目录 简单的例子 Use with GridSpec Legend and Annotations Use with AxesGrid1 Colorbar 函数链接 matplotlib教程学习笔记 ...

  3. CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案

    CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案台湾安格AG9311是一款TYPEC转HDMI带PD3.0的音视频转换芯片,它主要用在USB TYPEC拓展坞或者USB ...

  4. 【MySQL作业】DDL 和 DML——美和易思使用 DML 删除表数据应用习题

    点击打开所使用到的数据库>>> 删除客户"刘一鸣". 执行 SQL 代码"delete from customer where cName=' 刘一鸣 ...

  5. MySQL创建数据库 easyShopping,包括area表、goods表、customer表、orders表、ordersdetall表、test表

    MySQL创建数据库 easyShopping,包括area表.goods表.customer表.orders表.ordersdetall表.test表 商品表表结构: 字段名 说 明 类 型 长 度 ...

  6. 查收新年礼物丨DevEco Studio 3.0 Beta2发布,20个新变化详解

    HUAWEI DevEco Studio是开发HarmonyOS应用和原子化服务的一站式集成开发环境(IDE),为开发者提供工程模板创建.开发.编译.调试.发布等功能. 2021年12月31日,新版本 ...

  7. .net core的配置介绍(二):自定义配置(Zookeeper,数据库,Redis)

    上一篇介绍了.net core的配置原理已经系统提供的一些常用的配置,但有时我们的配置是存放在Zookeeper,DB,Redis中的,这就需要我们自己去实现集成了. 这里再介绍几个我们用的多的配置集 ...

  8. sqlplus -S参数表示什么意思?

    sqlplus -S , -S选项是静默模式,是Silent的缩写.在这种模式下将会以最精简的形式完成SQL*Plus的交互过程. -S模式多用于脚本模式.在命令行sqlplus -S还有可能出现卡住 ...

  9. JQuery实现奇偶行不同背景颜色

    假设table的id为:t1 $(document).ready(function(){ $('#t1 > tbody tr:even').css('background','white'); ...

  10. Static 静态+this

    (一):静态 1.Static修饰的都是静态的,都是类相关的,不需要new对象,直接采用类名.的方式访问 2.当一个属性是类级别的,所有对象的这个属性都是一样的,直接定义为静态 类=属性+方法 属性描 ...