java仿真软件_一个简单的Java仿真程序
这是一个简单的仿真程序:
在这个仿真程序中,花园委员会都希望了解每天通过大门进入公园的总人数.每个大门都有一个十字
转门或某种其他形式的计数器,并且任何一个十字转门的计数器递增时,就表示公园中的总人数的共享
计数值也会递增
package OrnamentalGarden;
import java.util.Random;
/**
* 这里使用单个的Count对象来跟踪花园的参观者的计算值,并且将其当做是Entrance类中的一个静态域进行访问
* @author 泉
*
*/
public class Count {
private int count = 0;
private Random rand = new Random(47);
public synchronized int increment() {
int temp = count;
if(rand.nextBoolean()) //这里使用了Random的对象,目的是把从count读取到temp中,到递增,temp并把
Thread.yield(); //其存储回count的这段时间里,有大约一半的时间产生让步.
return (count = ++ temp);
}
public synchronized int value() {
return count++;
}
}
----------------------------------------------------------
package OrnamentalGarden;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class Entrance implements Runnable {
private static Count count = new Count();
private static List entrances = new ArrayList();
private int number = 0;
private final int id;
private static volatile boolean canceled = false;
public Entrance(int id) {
this.id = id;
entrances.add(this);
}
public static void cancel() {
canceled = true;
}
public void run() {
while(!canceled) {
//同步控制块
synchronized (this) {
++ number;
}
System.out.println(this + "Total: "+count.increment());
try {
TimeUnit.MICROSECONDS.sleep(100);
}catch(InterruptedException e) {
System.out.println("sleep interrupted !! ");
}
}
System.out.println("Stopping "+this);
}
public synchronized int getValue() {
return number;
}
public static int getTotalCount() {
return count.value();
}
public static int sumEntrances() {
int sum = 0;
for(En
java仿真软件_一个简单的Java仿真程序相关推荐
- java 序列化 例子_一个简单的Java序列化的例子
简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对 ...
- java 语言 写字板_一个简单的java语言写字板.docx
一个简单的java语言写字板.docx 一个简单的JAVA语言写字板一.需求分析1.需求分析:现在网络上各种文档编辑器数不胜数.功能也是应有尽有,有能改变字体的,有可以改变字体颜色的,但是,这些软件有 ...
- java单机应用程序_一个简单的java桌面应用:单机版IFTTT
1.项目背景: ifttt是"if this then that"的缩写,事实上是让你的网络行为能够引发连锁反应.让你使用更为方便.ifttt旨在帮助人们利用各网站的开放API,将 ...
- 用java建立一个学生查询系统_一个简单的java学生寝室查询系统
本文实例为大家分享了java学生寝室查询系统的具体代码,供大家参考,具体内容如下 前端部分: index.html ahpu freshman dormitory inquiry html,body{ ...
- 用vb思设计Java编译器_一个简单的VB-VC编译器 - 程序设计(Programming)版 - 北大未名BBS...
发信人: phoenix (凤凰), 信区: VisualBasic 标 题: 一个简单的VB-VC编译器 发信站: PKU BBS (Thu Jan 6 14:05:52 2000), 转信 V ...
- java年龄计算_一个简单的java年龄计算器
制作一个如下图年龄计算器 根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图: package com.Date; import j ...
- java frame paint_一个简单的java frame画图(paint)问题
packagedrawstring;//继承frame来画字符串.importjava.awt.Button;importjava.awt.Color;importjava.awt.FlowLayou ...
- java liferay,用一个简单的Java code获取当前用户的Liferay
I'm working with : Liferay 6.0.6 with JBoss 5.1 and Struts2. My question is, how to get the current ...
- idea建立一个java工程_IntelliJ IDEA(三、各种工程的创建 -- 之一 -- 创建一个简单的Java工程)...
一.创建一个简单的Java工程:HelloWorld 1. Eclipse的第一步是选择工作空间,然后创建项目: IDEA不同(没有工作空间的概念),第一步就直接创建具体的项目,项目创建过程中会选择在 ...
最新文章
- 如何直接从GitHub安装npm软件包?
- Cmake中的find_package功能
- 图像处理--图像上采样和下采样
- JVM(三)对象的生死判定和算法详解
- java mybtis关联查询,7.MyBatis 关联查询(一对一)
- 2005.2.21 至 2005.8.8
- pytorch ResNet结构代码实现
- MyBatis 持久化框架快速使用入门(Xml配置版)
- TPC-H介绍及实战总结
- modelica语言学习心得
- VMware16安装win7 x64 虚拟机
- python问题:IndentationError:expected an indented block错误
- win10c盘扩容_【网赚教程】2020最新百度网盘扩容技术,适合做虚拟资源项目和业务!...
- [BZOJ1864][CODEVS2462]三色二叉树
- android room 分页,Android官方ORM数据库Room技术解决方案简介(一)
- 洛谷P1125笨小猴C语言
- Weight the Tree CodeForces - 1646D
- 嵌入式RTOS的 任务栈 和 系统栈
- linux怎么发现和处理僵尸进程?
- Unity丛林战争学习02_TCP_解决分包和黏包的问题
热门文章
- hdu1526 二分匹配+ floyd
- 【数字信号处理】相关函数应用 ( 高斯白噪声 的 自相关函数 分析 )
- 【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )
- 【Android 安装包优化】WebP 图片转换 ( 使用 iSparta 转换 WebP 图片格式 | Google 提供的 libwebp 库 )
- 【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )
- 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )
- [Spring cloud 一步步实现广告系统] 17. 根据流量类型查询广告
- hibernate操作mysql中文乱码
- #在android studio中维护日程管理系统
- Android LayoutInflater详解(转)