博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试6--模拟两人在对话1000次
阅读量:4960 次
发布时间:2019-06-12

本文共 3385 字,大约阅读时间需要 11 分钟。

1 package com.review; 2 /** 3  * @program: com.review 4  * @description: 5  * @author: Mr.Lin 6  * @create: 2019年8月14日 7  **/ 8 public class Resident extends Thread{ 9      private MiddleMan mid = null;10      public Resident() {         11      }12      public Resident(MiddleMan movie) {13          this.mid = movie;14      }15      @Override16      public void run() {17          for (int i = 0; i <1000 ; i++) {18              try {19                  Thread.sleep(100);20              }catch (InterruptedException e) {21                  e.printStackTrace();22              }23              this.mid.get();24          }25      }26 27 }
住户
1 package com.review; 2 /** 3  * @program: com.review 4  * @description: 5  * @author: Mr.Lin 6  * @create: 2019年8月14日 7  **/ 8 public class Staff implements  Runnable{ 9     //生产数据10     private MiddleMan mid = null;11      private boolean flag = false;12      13      public Staff(MiddleMan movie) {14          this.mid = movie;15      }16      public Staff() {         17      }18 19     @Override20     public void run() {21         // TODO Auto-generated method stub22         for (int i = 0; i <1000; i++) {23             if (flag){24                 this.mid.set("jack说:","我是查水表");25                 flag = false;26             }else {27                 this.mid.set("rose说:","你是谁啊?");28                 flag = true;29             }30         }31         32     }33 34 }
工作人员
1 package com.review; 2 /** 3  * @program: com.review 4  * @description: 5  * @author: Mr.Lin 6  * @create: 2019年8月14日 7  **/ 8 public class MiddleMan { 9     private String name;10     private String info;11     private boolean flag = true;12     13      public String getName() {14          return name;15      }16      17      public String getInfo() {18          return info;19      }20      21      public MiddleMan(String name, String info) {22          this.name = name;23          this.info = info;24      }25      26      public MiddleMan() {         27      }28      29      public synchronized void  set(String name,String info){30          if (!flag){31              try {32                  super.wait();33              }catch (InterruptedException e) {34                  e.printStackTrace();35              }36          }37          this.name = name;38          try {39              Thread.sleep(100);40          }catch (InterruptedException e) {41              e.printStackTrace();42          }43          this.info = info;44          flag = false; 45          super.notify(); 46      }47      public synchronized void get(){48          if (flag){49              try {50                  super.wait();51              }catch (InterruptedException e) {52                  e.printStackTrace();53              }54          }55          System.out.println(this.getName()+"-"+this.getInfo());56          flag = true;57          super.notify();58      }59           60 }
二房东
1 package com.review; 2 /** 3  * @program: com.review 4  * @description: 5  * @author: Mr.Lin 6  * @create: 2019年8月14日 7  **/ 8 public class Test { 9     public static void main(String[] args) {10          MiddleMan mid = new MiddleMan();11          Thread Staff = new Thread(new Staff(mid));12          Thread Resident = new Thread(new Resident(mid));13          Staff.start();14          Resident.start();15     }16 17 }
测试

 

转载于:https://www.cnblogs.com/lpbk/p/11353523.html

你可能感兴趣的文章
codevs 2800 送外卖 TSP问题
查看>>
子查询:相关子查询、无关子查询
查看>>
小型开发团队的测试误区
查看>>
004-数据类型(String)
查看>>
最简单实现一个数据库
查看>>
php备份数据库
查看>>
Java 编程入门(词汇表)
查看>>
基于jquery的js幻灯片类
查看>>
tap事件的原理详解
查看>>
申请Let's Encrypt永久免费SSL证书
查看>>
Windows XP硬盘安装Windows7
查看>>
机房收费系统测试
查看>>
数组,集合分割函数,join()
查看>>
JWT
查看>>
2019西北工业大学程序设计创新实践基地春季选拔赛 I Chino with Rewrite (并查集+树链剖分+线段树)...
查看>>
爬虫代理的设置
查看>>
SQL基础操作
查看>>
Ajax总结
查看>>
adobe form
查看>>
Winform使用BackgroundWorker组件进行异步编程
查看>>