- 浏览: 60682 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
walkingman_c:
/**
* final finally finalize ...
final finally finalize 之间的区别 -
walkingman_c:
123
final finally finalize 之间的区别 -
walkingman_c:
引用1
final finally finalize 之间的区别 -
walkingman_c:
引用不错哦 不错哦
final finally finalize 之间的区别 -
walkingman_c:
哈哈
javase-->重载
模拟烧茶的过程: 1)烧水 2)需要茶叶的时候发现没茶叶,叫eric去买(没有茶叶,需要买) 3)需要杯子的时候发现没杯子,叫meten去买(没有杯子,需要买) 4)放茶叶 3)倒水 public class ExecDemo2 { public static void main(String[] args){ Tea tea = new Tea(); tea.setTea(false); Teacup teacup = new Teacup(); teacup.setTeacup(false); Thread burntTea = new BurntTea(tea,teacup,"勾力"); burntTea.start(); } } /** * 共享数据Tea * @author Administrator * */ class Tea{ private boolean isTea; public boolean isTea() { return isTea; } public void setTea(boolean isTea) { this.isTea = isTea; } } /** * 共享数据Teacup * @author Administrator * */ class Teacup{ private boolean isTeacup; public boolean isTeacup() { return isTeacup; } public void setTeacup(boolean isTeacup) { this.isTeacup = isTeacup; } } /** * 管理线程 BurntTea * @author Administrator * */ class BurntTea extends Thread { private Tea tea; private Teacup teacup; public BurntTea(Tea tea, Teacup teacup,String name){ super(name); this.tea = tea; this.teacup = teacup; } public void run(){ String name = Thread.currentThread().getName(); System.out.println(name + "准备烧茶啦"); System.out.println(name + "烧水啦"); while(!this.tea.isTea()){ System.out.println(name + "发现没茶叶啦"); Runnable buyTea = new BuyTea(tea); Thread buyTeaThread = new Thread(buyTea,"eric"); buyTeaThread.start(); try { buyTeaThread.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(this.tea.isTea()){ break; } } while(!this.teacup.isTeacup()){ System.out.println(name + "发现没有茶杯啦"); Thread buyTeacup = new BuyTeacup(teacup,"meten"); buyTeacup.start(); try { buyTeacup.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(this.teacup.isTeacup()){ break; } } System.out.println(name + "放茶叶"); System.out.println(name + "放水"); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("茶烧好啦"); } } /** * 买茶杯线程 * @author Administrator * */ class BuyTeacup extends Thread{ private Teacup teacup; public BuyTeacup(Teacup teacup ,String name){ super(name); this.teacup = teacup; } public void run(){ String name = Thread.currentThread().getName(); System.out.println(name + "去买茶杯了"); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(name + "买茶杯回来啦"); int a = (int)(Math.random() * 1000) % 3; switch(a){ case 1: System.out.println("买茶杯成功"); this.teacup.setTeacup(true); break; case 2: System.out.println("买茶杯不成功"); this.teacup.setTeacup(false); break; case 3: System.out.println("买茶杯成功"); this.teacup.setTeacup(true); break; } } } /** * 买茶叶线程 * @author Administrator * */ class BuyTea implements Runnable{ private Tea tea; public BuyTea(Tea tea){ this.tea = tea; } public void run(){ String name = Thread.currentThread().getName(); System.out.println(name + "去买茶叶了"); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(name + "买茶叶回来啦"); int a = (int)(Math.random() * 1000) % 4; switch(a){ case 1: System.out.println("买茶叶成功"); this.tea.setTea(true); break; case 2 : System.out.println("买茶叶不成功"); this.tea.setTea(false); break; case 3: System.out.println("买茶叶成功"); this.tea.setTea(true); break; case 4: System.out.println("买茶叶不成功"); this.tea.setTea(false); break; } } }
发表评论
-
String ,StringbBuilder ,StringBuffer 的区别
2011-10-15 13:01 832package com.gouchao.string; ... -
多线程:模拟追女孩共享数据,但不共享代码
2011-07-25 22:50 929/** * * * 模拟一个场景:Meten ... -
多线程:只是共享代码,不共享数据,
2011-07-25 22:48 1040/** * * * 模拟:丐帮洪七公和郭靖在路 ... -
多线程:模拟烧茶的过程:
2011-07-25 22:46 752/** * * 模拟烧茶的过程: * ... -
输出数列要求:输出1 1 2 3 5 8 13……这样的数列,输出该数列的前20 个数字。
2011-07-25 22:42 1601/** * 输出数列要求:输出1 1 2 3 5 8 13 ... -
杨辉三角
2011-07-25 22:41 898/** * * * 杨辉三角要求:实现10 ... -
运用IO流知识,编一个程序,将某一个目录下所有东西删除
2011-07-25 22:40 901import java.io.File; /** * ... -
拉丁方阵
2011-07-25 22:39 1588import java.io.BufferedReader; ... -
运用IO流知识,编一个程序,将指定目录下所有文件遍历出来
2011-07-25 22:38 934import java.io.File; /** * ... -
TreeSet自定义排序
2011-07-25 22:36 1167import java.util.Iterator; imp ... -
多线程
2011-07-25 22:34 573/** * 用多线程的知识,写一个应用程序,该应用程序要求 ... -
歌唱比赛评分问题
2011-07-25 22:33 2835import java.util.Random; /** ... -
百钱买百鸡问题
2011-07-25 22:32 845/**百钱买百鸡问题 * 问题描述:每只母鸡3 元,每只公 ... -
利用选择排序算法将以下数字 3,6,5,2,55,66,1,从大到小排序
2011-07-25 22:31 999/** * * 利用选择排序算法将以下数字 3,6, ... -
随机生成12个整数,并且用冒泡排序算法将这12个数从小到大排序
2011-07-25 22:30 1598import java.util.Random; /** ... -
JAVA连接各种数据库
2011-07-25 01:42 5431、Oracle8/8i/9i数据库(th ... -
丐帮洪七公和郭靖在路上碰到了黄老邪和老毒物
2011-07-25 01:37 739模拟: 丐帮洪七公和郭靖在路上碰到了黄老邪和老毒物。 洪七 ... -
追女仔
2011-07-25 01:35 774模拟一个场景: Meten和Eric同时喜欢上了一个妹妹Ja ... -
Set专题:Set具有排重功能
2011-07-24 23:31 1254import java.util.HashSet; impo ... -
遍历集合List
2011-07-24 23:14 781import java.util.ArrayList; im ...
相关推荐
利用fluent组分输运模型模拟锅炉混煤燃烧过程
umeshmotion材料烧蚀_材料模拟_烧蚀umeshmotion_烧蚀_umeshmotion_ABAQUS-umeshmo ABAQUS子程序umeshmotion简单烧蚀模拟
燃烧过程的数值模拟方法,离散方程,方程的求解方法
ABAQUS子程序umeshmotion简单烧蚀模拟
基于泊松过程构造定理,利用R语言来模拟泊松过程 ,并给出泊松过程的检验方法。
模拟仿真是计算机的重要技术之一,目前应用广泛,实际作用极强。机械运动是一种以外力为动力的运动过程,对其进行分析有一定的困难。而采用计算机进行模拟仿真的方式,...本文重点在于对计算机模拟机械运动过程的深入探究。
基于泊松过程构造定理,利用R语言来模拟泊松过程 ,并给出泊松过程的检验方法。
柴油转子发动机燃烧过程的数值模拟研究 柴油转子发动机燃烧过程的数值模拟研究
《计算机网络课程设计》——模拟Ethernet帧发送过程
汽油转子发动机燃烧过程模拟技术研究, 论文参考
计算机网络课程设计——路由器查表过程模拟; ①讲解PPT; ②课设报告,附录带有代码;
基于泊松过程构造定理,利用R语言来模拟泊松过程 ,并给出泊松过程的检验方法。
炼油化工过程模拟原理,了解炼油化工反应过程,及计算机模拟原理
能够实现侵蚀燃烧,模拟实际燃烧现象,真实的燃烧情况
采用Aspen Adsorption软件对CH4和N2分别为30%和70%低浓度煤层气的吸附过程进行模拟,得到吸附柱出口CH4和N2浓度随时间的变化关系和吸附柱轴向负载分布,考察压力、温度和传质系数对甲烷吸附过程和穿透曲线的影响。...
ch4 模拟Ethernet帧发送过程ch4 模拟Ethernet帧发送过程
matlab开发-模拟霍克斯过程。(并将其可视化)
对算符优先过程的模拟 输入一个文法可以的出相应的移进规约表
设计一个银行账户类,并用字符界面模拟存款取款过程
模拟Ornstein Uhlenbeck过程的matlab程序,供大家参考,可与维基百科上的图进行对比,有助于学习随机过程