Java中的wait方法 简单介绍。
一 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方法 简单介绍。的更多相关文章
- Java中基本类型和引用类型(简单介绍)
8种基本类型 一.4种整型 byte 1字节 -128——127 short 2 字节 -32,768 —— 32,767 in ...
- java中的泛型,简单介绍。 修饰方法的用法
一.<R> ( R r ) 默认object 可以存所有类型. R 这个是随便定义的大写字母,前后要保持一致性! package com.aaa.test; /* * 演示 泛型 ...
- java中的compareto方法的详细介绍
java中的compareto方法的详细介绍 Java Comparator接口实例讲解(抽象方法.常用静态/默认方法) 一.java中的compareto方法 1.返回参与比较的前后两个字符串的as ...
- java中的compareto方法以及LIst列表排序的详细介绍【转】
java中的compareto方法的详细介绍 javacompareTo java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码 String a=&quo ...
- InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。
InputStreamReader 和 OutputStreamWriter类使用方法简单介绍. 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是 ...
- Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等
Java 中15种锁的介绍 Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等,在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类 ...
- java中垃圾收集的方法有哪些?
java中垃圾收集的方法有哪些? 一.引用计数算法(Reference Counting) 介绍:给对象添加一个引用计数器,每当一个地方引用它时,数据器加1:当引用失效时,计数器减1:计数器为0的即可 ...
- Java中15种锁的介绍
作者:搜云库技术团队 原文:https://segmentfault.com/a/1190000017766364 1. Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观 ...
- 浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: 1 public native int hashCode(); 根据 ...
随机推荐
- Sum(hdu4407)
Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 【MySQL作业】DDL 和 DML——美和易思使用 DDL 维护数据库表结构应用习题
点击打开所使用到的数据库>>> 1.使用 DDL 语句修改 easyShopping 商品表 goods 表结构,要求如下: 新增字段生产厂商 manufacturer,它的类型为 ...
- 初识python: 异常处理
异常处理基本语法: try: pass except Exception,ex: pass 常用异常种类: AttributeError 试图访问一个对象,没有的属性.比如foo.x,但是foo没有属 ...
- Visual Studio Code常用插件(持续更新)
1.open in browser:使用快捷键在浏览器中打开html页面 在默认浏览器中打开html页面是Alt+B:在其他浏览器中显示是Shift+Alt+B:也可以右键单击html文件,在弹出的窗 ...
- Nagios 请检查HTTP服务器关于该CGI的访问权限设置
无权查看任何主机的信息. 请检查HTTP服务器关于该CGI的访问权限设置. 搜索了一下方法 确保 htpasswd.user的所有组为nagios 解决办法: vi /usr/local/nagios ...
- js页面触发chargeRequest事件和Nginx获取日志信息
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814836302966424072/ 承接上一篇文档<js页面触发pageView和event事件编写> ...
- linux获取 GPG 密钥失败
实质性问题就是自己系统没有yum的GPG密钥 查看自己系统版本 cat /etc/issue 登陆mirrors.163.com 找到自己系统对应的密钥 RPM-GPG-KEY-CentOS-3 ...
- vue2.0多页面开发
我们平常用vue开发的时候总觉得vue好像就是专门为了单页面应用而诞生的,其实不是.因为vue在工程化开发的时候很依赖webpack,而webpack是将所有的资源整合到一块,弄成一个单页面.但是vu ...
- javaScript(笔记1)
一.JavaScript数据类型: 1.分类: 基本数据类型 & 高级引用数据类型 2.基本数据类型: 数字类型(number), 字符串类型(string), 布尔类型(boolean) 3 ...
- SYCOJ4972的幂次方
题目- 2的幂次方 (shiyancang.cn) 递归题 #include<bits/stdc++.h> using namespace std; int k; void f(int n ...