一 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. 【LeetCode】633. Sum of Square Numbers 解题报告(python & Java & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 列表生成式 循环 日期 题目地址:https ...

  2. Regularizing Deep Networks with Semantic Data Augmentation

    目录 概 主要内容 代码 Wang Y., Huang G., Song S., Pan X., Xia Y. and Wu C. Regularizing Deep Networks with Se ...

  3. Spurious Local Minima are Common in Two-Layer ReLU Neural Networks

    目录 引 主要内容 定理1 推论1 引理1 引理2 Safran I, Shamir O. Spurious Local Minima are Common in Two-Layer ReLU Neu ...

  4. [Open Source]基于YOLOv3与Django框架的Web应用-YOLOv3_Detect_Web

    YOLOv3_Detect_Web Use Yolov3 detect on Web 使用 YOLOv3(PyTorch 和 Django 实现)的对象检测应用程序. 网页和 REST API由Dja ...

  5. 单芯片替代PS176 DP转HDMI 4K60HZ DP转HDMI2.0转换芯片CS5263

    PS176是一个显示端口 (DP)至HDMI 2.0视频接口转换器适用于需要视频协议转换的电缆适配器.电视接收器.监视器和其他应用.它将接受任何显示端口输入格式,包括DP 1.1a.dp1.2a.dp ...

  6. 「会员卡管理系统」 · Java Swing + MySQL JDBC开发

    目录 目录 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 >>>实现代码: 数据库 com.ynavc.Bean com.yn ...

  7. Linux下设置普通用户使用sudo命令

    1.登录root用户 2.增加root用户对文件sudoers的写权限 chmod u+w /etc/sudoers 3.编辑sudoers,把用户mysql添加进去 vi /etc/sudoers ...

  8. js 简单版发布留言 案例

    <!DOCTYPE html>   <html lang="en">   <head>       <meta charset=" ...

  9. python+requests传两种参数体

    在JMeter请求参数中,我们了解到,在做接口测试时,发送请求的参数有两种格式,一种是Parameters,一种是JSON.怎么区分请看 https://www.cnblogs.com/testlea ...

  10. Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12

    Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12. 这个报错的原因是在mapper文件中的sql语书写错误 <inse ...