-
用java来模拟观光塔问题10
假定有一座观光塔,只有一部电梯,只能容纳一个游客上观光塔或下观光塔。观光塔观光平台只能最多容纳10个人,请用java模拟这个情况。
各位该怎么写
问题补充Rojeck 写道生产者消费者问题
推荐新容器Blockingqueue
Blockingqueue就是一个栈吧
2010年8月25日 13:47
2个答案 按时间排序 按投票排序
-
各位批评批评 感谢
public class TestElevator { public static void main(String[] args) { Visitor jobs = new Visitor("KDS_001", "Jobs"); Visitor gates = new Visitor("KDS_002", "Gates"); Visitor jerry = new Visitor("KDS_003", "Jerry"); Visitor tom = new Visitor("KDS_004", "Tom"); Visitor chalie = new Visitor("KDS_005", "Chalie"); Elevator elevator = Elevator.getInstance(); elevator.rise(jobs); elevator.rise(gates); elevator.rise(jerry); elevator.rise(tom); elevator.rise(chalie); elevator.down(); elevator.down(); elevator.down(); elevator.down(); } }
/* * @(#)TowerController.java Aug 20, 2010 * * Copyright 2009 Nyber(Shanghai Itd. All rights reserved. */ package com.lab.puzzle; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import org.apache.commons.lang.StringUtils; /** * 假定有一座观光塔, 只有一部电梯, 只能容纳一个游客上观光塔或下观光塔. 观光塔观光平台只能最多容纳5个人. * * @author nickevin@gmail.com * @version Aug 20, 2010 5:37:34 PM */ public class Elevator { private final static Elevator instance = new Elevator(); private final static int THRESHOLD = 5; private final static BlockingQueue<Visitor> tower = new LinkedBlockingQueue<Visitor>( THRESHOLD); ExecutorService service = Executors.newCachedThreadPool(); private Elevator() {} public static Elevator getInstance() { return instance; } public void rise(Visitor visitor) { service.submit(new GetUpThread(tower, visitor)); } public void down() { service.submit(new GetOffThread(tower)); } } class GetUpThread implements Runnable { private final BlockingQueue<Visitor> tower; private Visitor visitor; GetUpThread(BlockingQueue<Visitor> tower, Visitor visitor) { this.tower = tower; this.visitor = visitor; } public void run() { try { while (true) { System.out.println(StringUtils.center( "当前塔上人数: " + tower.size(), 80, "-")); tower.put(produce()); System.out.println(visitor + " 正在上塔, 请注意安全."); Thread.sleep(1000); } } catch (InterruptedException ex) { } } private Visitor produce() { return visitor; } } class GetOffThread implements Runnable { private final BlockingQueue<Visitor> tower; GetOffThread(BlockingQueue<Visitor> tower) { this.tower = tower; } public void run() { try { while (true) { System.out.println(StringUtils.center( "当前塔上人数: " + tower.size(), 80, "-")); consume(tower.take()); Thread.sleep(1000); } } catch (InterruptedException ex) { } } private void consume(Visitor visitor) { System.out.println(visitor + " 正在下塔, 请注意安全."); } } class Visitor { private String cardId; private String name; public Visitor(String cardId, String name) { this.cardId = cardId; this.name = name; } @Override public int hashCode() { ... } @Override public boolean equals(Object obj) { ... } @Override public String toString() { return new StringBuilder("游客: " + name).toString(); } }
2010年8月25日 13:47
相关推荐
大型观光塔作为一种地标性建筑,不仅能够提供独特的视角来欣赏城市的美景,还融合了旅游、娱乐、购物等多种功能,成为现代城市的新宠。然而,这类建筑的高度往往高达几百米,结构细长,加之其内部功能的多样化,使得...
标题中的“行业分类-设备装置-用H型钢结构构成观光塔的方法及H型钢结构制作方法”揭示了这个压缩包文件包含的内容主要集中在建筑行业的设备装置领域,特别是关于使用H型钢构建观光塔的技术以及H型钢本身的制造工艺。...
中国湿地博物馆观光塔安防系统工程项目招标文件.doc
这篇文档是关于三年级数学下册第三单元的教学教案,主题为“美丽的街景——两位数乘两位数”,聚焦于“信息窗3:壮丽的观光塔”。教案主要目标是让学生掌握进位的两位数乘两位数的计算方法,并通过实际情境提出问题...
这篇文档是针对三年级数学下册第三单元的教学教案,主题为“美丽的街景——两位数乘两位数”,重点在于信息窗3“壮丽的观光塔”的第二课时。本课时的目标是让学生通过实际问题的解决,掌握两位数乘两位数的运算,并...
精品教育教学资料
该项目是一款基于Java开发的峨眉山旅游车观光后台管理系统源码,包含129个文件,其中包括116个Java源文件、8个XML配置文件、1个Git忽略文件、1个属性文件以及1个构建文件。系统旨在为峨眉山旅游车观光提供高效的后台...
这篇文档主要涵盖的是2021年N2观光车和观光列车司机的考试...总的来说,这份考试资料和模拟试题旨在全面评估和提升观光车和观光列车司机的专业知识和安全意识,确保他们在实际工作中能够安全、有效地驾驶和维护车辆。
这篇文档是针对三年级数学下册第...总的来说,这个教学教案旨在通过多种教学手段和练习形式,使学生全面掌握两位数乘两位数的计算技能,并能在实际问题中灵活应用,同时培养他们的逻辑思维、问题解决和批判性思考能力。
2024年N2观光车和观光列车司机模拟考试题库试卷(含参考答案).docx
这篇资料是关于N2观光车和观光列车司机模拟考试的内容,包含了多项判断题和部分单选题,涉及了车辆安全驾驶、车辆维护、特种设备安全法规等多个知识点。 1. **车辆安全驾驶**:资料强调了驾驶员的行为规范,如禁止...
【数学建模】是一种应用广泛的学科,它将数学理论与实际问题相结合,通过建立数学模型来解决实际问题。在这个特定的模拟题中,任务聚焦于为一个五口之家规划一个在东北三省的10天旅游行程。以下是该问题涉及的主要...
2. **观光车辆安全**:非公路用旅游观光车辆的安全部件包括制动器、轮胎、转向器和喇叭,这些都是保障车辆安全行驶的关键组件。 3. **车辆性能参数**:转弯半径、接近角、离去角和最小离地间隙是衡量车辆通过性能的...
如果已知用户的访问模式,那么就可以利用Markov模型来回答一些性能相关的问题,如吞吐量、响应时间等。 #### 六、总结 通过上述内容,我们了解了Markov模型的基本概念、分类以及应用案例。Markov模型作为一种重要...
在本案例中,“观光型公交车3D模型”是一个专门设计用于展示或模拟观光型公交车的数字模型。这样的模型通常由专业设计师利用3D建模软件创建,如Autodesk 3ds Max、Maya或Blender等。这些工具允许艺术家们通过各种...
7. 美国西雅图:西雅图在2019年推出了一系列大胆的项目,如太空针塔的多年重建工程,其中包括一个带有旋转玻璃地板的餐厅,这表明了西雅图致力于提升城市文化和旅游体验的决心,同时保持亲民的价格,为游客提供了更...
技术方案主要针对夏季观光电梯轿厢内部温度过高,通过改造来降低轿厢温度。
- **问题描述**:系统需要满足不同旅客的需求,如商务旅行者寻求最短时间,观光客寻求最低费用。设计中,全国城市间的交通网络被抽象为有向图,每个城市是一个节点,不同车次构成有向边,每条边携带时间、费用等...