Java-线程$等待唤醒机制(wait,notify)
来源:互联网 发布:淘宝上如何买到真牛排 编辑:程序博客网 时间:2024/05/21 17:00
/* * 需求:两条线程,一条线程不断存储,学生的信息,还有一个线程不断打印学生信息。要求存一个打一个 * 思想:通过多线程唤醒机制实现 * 步骤:1.创建资源类,把学生数据封装到里面,并对外提供接口操作数据, 存在线程安全隐患的声明为同步函数 2.创建线程任务,使用资源对象初始化线程任务对象 3.创建线程,使用线程任务初始化 4.开启线程*/class Resocuce{private String name; //学生姓名private boolean sex; //学生性别 false:男生,true:女生private int num; //学生学号private boolean flag = false; //标志位,用于标志数据是否有新的存储 //false:已存新数据,应该打印了 //true:新的数据已经打印了, 应该存储了public synchronized void setInfo(String name, boolean sex, int num){if(!flag){try{this.wait();}catch(InterruptedException e){}}this.name = name;this.sex = sex;this.num = num;flag = false;this.notify();}public synchronized void getInfo(){if(flag){try{this.wait();}catch(InterruptedException e){}}System.out.println("name:" + name + ",sex:" + (sex ? "女":"男") + ",num:" + num);flag = true;this.notify();}}class InputInfo implements Runnable{private Resocuce r;InputInfo(Resocuce r){this.r = r;}public void run(){boolean flag = true;while(true){if(flag){r.setInfo("xiaoli", true, 1303);flag = !flag;}else{r.setInfo("mawang", false, 9103);flag = !flag;}}}}class OutputInfo implements Runnable{Resocuce r;OutputInfo(Resocuce r){this.r = r;}public void run(){while(true)r.getInfo();}}class SyncThreadDemo{public static void main(String[] args){//创建资源Resocuce r = new Resocuce();//创建任务InputInfo in = new InputInfo(r);OutputInfo out = new OutputInfo(r);//创建线程Thread t1 = new Thread(in);Thread t2 = new Thread(out);//开启线程t1.start();t2.start();}}
0 0
- Java-线程$等待唤醒机制(wait,notify)
- JAVA 线程等待唤醒,wait and notify
- Java线程之等待wait唤醒notify示例(一)
- java多线程-线程间通信-示例代码-解决安全问题-等待唤醒机制wait()notify()notifyAll()
- java多线程学习之线程通信-wait()等待 notify()唤醒
- 线程间通信 等待唤醒机制 wait notify notifyAll lock Condition唤醒 停止线程interrupt 守护线程setDaemon join yield
- java 中wait和notify 线程等待和线程唤醒的使用方式 需要借助synchronized
- JAVA多线程-线程间通信(一)-等待/通知机制(wait/notify)
- 3.1等待/通知机制(wait/notify)
- 多线程wait等待和notify唤醒
- Java多线程编程3--线程间通信--等待(wait)/通知(notify)机制
- 等待/通知机制wait(),notify()
- 等待/通知机制:wait/notify
- java线程通信wait()和notify()机制
- 线程等待唤醒机制
- Java多线程之线程间通信--等待(wait)/通知(notify)机制,等待/通知之交叉备份实例
- Java线程间通信-等待唤醒机制
- Java线程等待wait通知notify方法的使用
- Lftp超时与NOOP
- VelocityTracker类的介绍和使用
- Collection和Collections的区别
- google测试第一题及
- 面向对象程序设计上机练习三(有默认参数的函数)
- Java-线程$等待唤醒机制(wait,notify)
- Oracle获取当天,当月,当年的数据
- Connection、PreparedStatement、Statement、ResultSet是JDBC编程常用的接口,请分别简述它们的作用?
- zoj 1524 - Supermarket
- 面向对象程序设计上机练习四(变量引用)
- 判断一个单链表是否有环及环的链接点
- hibernate 关联关系 一对一 外间关联 .
- 记忆化搜索
- 面向对象程序设计上机练习一(函数重载)