-
用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源文件,展现...
Java LeetCode题解之Best Sightseeing Pair(最佳观光组合)涵盖了对LeetCode平台上的一道经典算法题目的解答。在这一题中,我们需要给定一个整数数组A,找出A[i] + A[j] + i - j的值的最大化组合。其中i和j是数组中...
这篇文档主要涵盖的是2021年N2观光车和观光列车司机的考试...总的来说,这份考试资料和模拟试题旨在全面评估和提升观光车和观光列车司机的专业知识和安全意识,确保他们在实际工作中能够安全、有效地驾驶和维护车辆。
例如,在“自主练习 7”中,学生通过计算来理解工作量、工作效率和工作时间三者之间的关系,这不仅能够让学生在生活中遇到相关问题时能够运用所学知识,还能够提高他们对数学应用价值的认识。在“自主练习 10”中,...
这篇资料是关于N2观光车和观光列车司机模拟考试的内容,包含了多项判断题和部分单选题,涉及了车辆安全驾驶、车辆维护、特种设备安全法规等多个知识点。 1. **车辆安全驾驶**:资料强调了驾驶员的行为规范,如禁止...
观光车和观光列车司机模拟考试题库试卷中的知识点涵盖了多个方面的内容,包括交通安全、特种设备维护、车辆行驶规则和安全操作等。以下是对知识点的详细总结: 1. 电梯安全保护:限速器与安全钳的组合使用,对于...
【数学建模】是一种应用广泛的学科,它将数学理论与实际问题相结合,通过建立数学模型来解决实际问题。在这个特定的模拟题中,任务聚焦于为一个五口之家规划一个在东北三省的10天旅游行程。以下是该问题涉及的主要...
2. **观光车辆安全**:非公路用旅游观光车辆的安全部件包括制动器、轮胎、转向器和喇叭,这些都是保障车辆安全行驶的关键组件。 3. **车辆性能参数**:转弯半径、接近角、离去角和最小离地间隙是衡量车辆通过性能的...
如果已知用户的访问模式,那么就可以利用Markov模型来回答一些性能相关的问题,如吞吐量、响应时间等。 #### 六、总结 通过上述内容,我们了解了Markov模型的基本概念、分类以及应用案例。Markov模型作为一种重要...
在本案例中,“观光型公交车3D模型”是一个专门设计用于展示或模拟观光型公交车的数字模型。这样的模型通常由专业设计师利用3D建模软件创建,如Autodesk 3ds Max、Maya或Blender等。这些工具允许艺术家们通过各种...
7. 美国西雅图:西雅图在2019年推出了一系列大胆的项目,如太空针塔的多年重建工程,其中包括一个带有旋转玻璃地板的餐厅,这表明了西雅图致力于提升城市文化和旅游体验的决心,同时保持亲民的价格,为游客提供了更...
技术方案主要针对夏季观光电梯轿厢内部温度过高,通过改造来降低轿厢温度。