一个简单的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<Entrance> entrances = new ArrayList<Entrance>();
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学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
import java.net.*;
import java.io.*;
public class ReadDemo
{
public static void main(String argv[])
{
try
{
URL url = new URL("http://blog.chinaunix.net/u/15586/showart_1863289.html");
BufferedRe ......
Java当中的序列化,其主要的作用是将类的实例进行无损传输,或者说就是通过Java的序列化机制,Java类的实例可以通过Object流来传输和重新获取,而不会损坏类的实例。
首先,我们看看什么样的类是序列化类,
1.A类自身实现了Serializable接口的类; ......
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改
关键字 Java 浮点数 精确计算
问题的提出:
如果我们编译运行下面这个程序会看到什么?
public class Test{
public static void mai ......