wait和notify的用法
package _7wait和notify;// wait()
// notify()
// notifyAll();// 通过调用某对象的wait()方法能让当前线程阻塞
// 通过调用某对象的notify()方法能唤醒一个正在等待该对象的线程
// 通过调用某对象的notifyAll()能唤醒所有正在等待该对象的线程public class TestDemo {public static void main(String[] args) throws InterruptedException {// TODO Auto-generated method stubObject obj = new Object();// 母亲做馒头线程Thread t = new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub// 做馒头System.out.println("母亲开始做馒头");try {Thread.sleep(5000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 做完馒头发通知synchronized (obj) {System.out.println("母亲: 馒头做好了,吃吧");obj.notify();// 通知一个等在obj上的一个线程继续运行//obj.notifyAll();// 通知所有等在Obj上的线程继续运行}}});t.start();Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubsynchronized (obj) {System.out.println("大明:我要吃馒头");try {obj.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 进入阻塞状态,直到其他线程发通知System.out.println("大明:开始吃馒头");}}});t2.start();synchronized (obj) {System.out.println("小明:我要吃馒头");obj.wait();// 进入阻塞状态,直到其他线程发通知System.out.println("小明:开始吃馒头");}}}
wait和notify的用法相关推荐
- Object.wait()与Object.notify()的用法
2019独角兽企业重金招聘Python工程师标准>>> wait.notify和notifyAll方法是Object类的final native方法.所以这些方法不能被子类重写 vo ...
- 浅谈一下线程中synchronized块、wait,notify的用法
首先我们来了解一下syncronized块和锁运行的基本原理,我们知道syncronized块的运行是依赖于锁而进行的. 假如把一个对象比喻成一个内部有很多小房子的大房子,有一些小房子没有门,人们随便 ...
- golang 中 signal 包的 Notify 函数用法介绍
函数声明为: func Notify(c chan<- os.Signal, sig ...os.Signal) 官方描述: Notify函数让signal包将输入信号转发到c.如果没有列出要传 ...
- 多线程——Condition的介绍以及用法
之前总结了wait和notify的用法,今天总结一下condition的用法. Condition介绍: 关键字synchronize可以与wait()和nitify()方法相结合实现实现等待/通知模 ...
- java中我爱你_Java线程学习(转)
编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:s ...
- 多线程小抄集(新编一)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Java多线程知识小抄集(一)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- 并发运行的最佳实践_并发最佳实践
并发运行的最佳实践 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导 ...
- 深入探索多线程优化方法
前言 什么是线程的概念我就不在介绍,不懂的自行百度,我想百分之九十九的人都是知道的,至于多线程,通俗的就是有很多的线程在一起工作从而完成某一件事,从而提升效率.这就是使用多线程的好处之一,举个列子,一 ...
最新文章
- JS中的this对象详解
- tempfile PermissionError: [Errno 13] Permission denied
- Qt控制台工程不能调试问题
- 文思创新深圳招聘biztalk
- 三个activity之间跳转 数据传递_第二百四十二回:Android中Fragment之间的数据传递概述...
- 禁用浏览器滚动条的解决方案
- Nginx安装及配置简介
- x1c 2017 安装mint18的坑——grub2
- 剖析Caffe源码之Net类变量
- 360 支持linux版本下载地址,360安全浏览器国产稳定版本发布,提供deb软件包下载,附介绍...
- Codeigniter3学习笔记三(创建类库及使用原生类库)
- Matlab2016a安装教程
- Windows 适配 Apple Magic TrackPad2
- 有监督学习与无监督学习的区别
- w ndows10图标,Win10桌面图标没了怎么办?Win10桌面快捷方式消失了解决方法
- APP运营推广:新APP建设之后该怎么做好品牌运营?
- 树莓派红外火焰传感器
- 原生javascript手风琴图片切换案例
- AI+MR遇冷后回暖,国内公司抢先卡位仍有风险待解
- debian 笔记本 准系统 RTL8822BE 8723 8192 8188 8168 8111 8107 8821-22 等PCIE 无线网卡蓝牙驱动安装