/*** @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()相关推荐

  1. java多线程之wait和notify协作,生产者和消费者

    这篇直接贴代码了 package cn.javaBase.study_thread1;class Source {public static int num = 0; //假设这是馒头的数量 }cla ...

  2. java多线程之wait和notify

    多线程中的通信是非常重要的概念,线程直接实现通信就可以并发完成很多复杂工作. java在Object类中就设计了wait()和notify()两个方法,以解决这个问题. 1.释义: wait()方法将 ...

  3. JAVA多线程之wait/notify

    本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法. ①wait() 与 notify/notifyAll 方法必须在同步代码块中使用 ②wait ...

  4. Java多线程之Synchronized和Lock的区别

    Java多线程之Synchronized和Lock的区别 目录: 原始构成 使用方法 等待是否可以中断 加锁是否公平 锁绑定多个条件Condition 小结:Lock相比较Synchronized的优 ...

  5. Java多线程之Callable、Future和FutureTask

    Java多线程之Callable接口 自己想总结一下的,看到一篇总结的更好的博客,就转载了,突然感觉真轻松,哈哈哈哈 文章转载于:Matrix海子:Java并发编程:Callable.Future和F ...

  6. Java多线程之CAS缺点

    Java多线程之CAS缺点 目录: 循环时间开销很大 只能保证一个共享变量的原子操作 引来ABA问题及解决方案(重点) 1. 循环时间开销很大 通过看源码,我们发现有个do while,如果CAS失败 ...

  7. Java多线程之CAS深入解析

    Java多线程之CAS深入解析 目录: CAS是什么 CAS底层原理Unsafe深入解析 CAS缺点 引子:蚂蚁花呗一面:讲一讲AtomicInteger,为什么要用CAS而不是synchronize ...

  8. Java多线程之volatile详解

    Java多线程之volatile详解 目录: 什么是volatile? JMM内存模型之可见性 volatile三大特性之一:保证可见性 volatile三大特性之二:不保证原子性 volatile三 ...

  9. Java多线程之Semaphore用法

    Java多线程之Semaphore用法 本文目录: Semaphore基本概念 Semaphore使用案例:3个停车位,6辆车去抢,走一辆,抢一个停车位. 1. Semaphore基本概念 在信号量上 ...

最新文章

  1. Github 一夜爆火:这份金九银十 Java 面试手册我给跪了
  2. script标签的defer属性
  3. FastThreadLocal
  4. 整合tomcat的一些配置
  5. android让一个控件跟上面控件对其,学个明白--Android控件架构
  6. 你真的了解 ConcurrentHashMap 吗?
  7. java多线程-线程池
  8. Keras下使用多GPU训练模型
  9. 腾达AC15改内存闪存刷AC68U梅林
  10. 微信小程序图片缓存问题
  11. Maven 本地仓库更新策略
  12. C语言求余运算符的使用
  13. 郭德纲 相声下载(续)
  14. No virtual method
  15. eslint 规则之 《Missing radix parameter》
  16. Mac电脑更新失败解决方法
  17. 如何进行音频录制?实用的音频录制方法合集
  18. 绘声绘影X4 个人MV制作
  19. python50道练习题
  20. OpenFOAM——孔板流量计

热门文章

  1. 前端学习(693):for循环案例之求出偶数奇数之和
  2. 前端学习(497):布局之居中布局
  3. 第八十四期: Java、Web 和移动程序员学习的 12 个框架
  4. The Apache Tomcat installation at this directory is version,tomcat
  5. linux 下建立多个tomcat
  6. 如何阻止表单的默认提交事件
  7. centos7安装svn客户端和使用
  8. Apache Curator之分布式锁原理(二)
  9. vim中如何设置多行注释和删除注释
  10. (HDU)1019 --Least Common Multiple(最小公倍数)