(JAVA)多线程之wait()与notify()
/*** @author Alina* @date 2021年12月22日 12:17 上午**/
class Student{String name;String sex;boolean flag = false;}
class Product implements Runnable{Student s ;Product(Student s ){this.s = s;}public void run(){int x = 0;//通过奇数偶数进行赋值while(true){synchronized (s){if(s.flag){try {s.wait();}catch (Exception e){}}if (x%2 == 1){s.name = "张三";s.sex = "男";}else {s.name = "李四";s.sex = "女";}x++;s.flag = true;s.notify();}}}
}
class Custom implements Runnable{Student s;Custom(Student s ){this.s = s;}public void run(){synchronized (s){while (true){if(!s.flag){try{s.wait();}catch (Exception e){}}System.out.println(s.name+"..."+s.sex);s.flag = false;s.notify();}}}}
public class SourceThreadDemo {public static void main(String[] args) {Student s = new Student();new Thread(new Product(s)).start();new Thread(new Custom(s)).start();}
}
(JAVA)多线程之wait()与notify()相关推荐
- java多线程之wait和notify协作,生产者和消费者
这篇直接贴代码了 package cn.javaBase.study_thread1;class Source {public static int num = 0; //假设这是馒头的数量 }cla ...
- java多线程之wait和notify
多线程中的通信是非常重要的概念,线程直接实现通信就可以并发完成很多复杂工作. java在Object类中就设计了wait()和notify()两个方法,以解决这个问题. 1.释义: wait()方法将 ...
- JAVA多线程之wait/notify
本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法. ①wait() 与 notify/notifyAll 方法必须在同步代码块中使用 ②wait ...
- Java多线程之Synchronized和Lock的区别
Java多线程之Synchronized和Lock的区别 目录: 原始构成 使用方法 等待是否可以中断 加锁是否公平 锁绑定多个条件Condition 小结:Lock相比较Synchronized的优 ...
- Java多线程之Callable、Future和FutureTask
Java多线程之Callable接口 自己想总结一下的,看到一篇总结的更好的博客,就转载了,突然感觉真轻松,哈哈哈哈 文章转载于:Matrix海子:Java并发编程:Callable.Future和F ...
- Java多线程之CAS缺点
Java多线程之CAS缺点 目录: 循环时间开销很大 只能保证一个共享变量的原子操作 引来ABA问题及解决方案(重点) 1. 循环时间开销很大 通过看源码,我们发现有个do while,如果CAS失败 ...
- Java多线程之CAS深入解析
Java多线程之CAS深入解析 目录: CAS是什么 CAS底层原理Unsafe深入解析 CAS缺点 引子:蚂蚁花呗一面:讲一讲AtomicInteger,为什么要用CAS而不是synchronize ...
- Java多线程之volatile详解
Java多线程之volatile详解 目录: 什么是volatile? JMM内存模型之可见性 volatile三大特性之一:保证可见性 volatile三大特性之二:不保证原子性 volatile三 ...
- Java多线程之Semaphore用法
Java多线程之Semaphore用法 本文目录: Semaphore基本概念 Semaphore使用案例:3个停车位,6辆车去抢,走一辆,抢一个停车位. 1. Semaphore基本概念 在信号量上 ...
最新文章
- Github 一夜爆火:这份金九银十 Java 面试手册我给跪了
- script标签的defer属性
- FastThreadLocal
- 整合tomcat的一些配置
- android让一个控件跟上面控件对其,学个明白--Android控件架构
- 你真的了解 ConcurrentHashMap 吗?
- java多线程-线程池
- Keras下使用多GPU训练模型
- 腾达AC15改内存闪存刷AC68U梅林
- 微信小程序图片缓存问题
- Maven 本地仓库更新策略
- C语言求余运算符的使用
- 郭德纲 相声下载(续)
- No virtual method
- eslint 规则之 《Missing radix parameter》
- Mac电脑更新失败解决方法
- 如何进行音频录制?实用的音频录制方法合集
- 绘声绘影X4 个人MV制作
- python50道练习题
- OpenFOAM——孔板流量计