⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.java

📁 源程序可使用Jdk1.3以上的任何版本编译和运行主类是Simulator也可以在eclipse环境下直接编译和运行。 顾客队列服务模拟系统
💻 JAVA
字号:
/*
 * 创建日期 2005-2-26
 * 
 * TODO 要更改此生成的文件的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package simulator;

public class Queue {

	/**
	 * 
	 * @uml.property name="customers"
	 * @uml.associationEnd multiplicity="(1 1)"
	 */
	private List customers = new List(); //用Java的List类来实现队列

    private synchronized Object performAction(String cmd, Object obj) {
        if (cmd.equals("insert")) { //处理插入操作
            if (!customers.isFull())
                customers.add(obj); //在列表中插入一个对象
            notify();
            return null;
        } else if (cmd.equals("size")) {
            return new Integer(customers.getSize()); //返回队列的大小
        } else if (cmd.equals("retrieve")) { //获取一个顾客
            while (customers.getSize() == 0) {
                try {
                    wait();
                } catch (InterruptedException ie) {
                    System.out.println("Synch error in queue: " + ie);
                }
            }
            Customer c = (Customer) customers.get(0); //获取队列的第一个对象
            //转换成Customer对象
            customers.delete(0); //删除队列的第一个对象
            return c;
        } else
            return null;
    }

    public void insert(Customer c) //插入一个顾客
    {
        performAction("insert", c);
    }

    public int getSize() //获得顾客队列的大小
    {
        return ((Integer) performAction("size", null)).intValue();
    }

    public Customer requestCustomer() //从队列获取一个顾客
    {
        return (Customer) performAction("retrieve", null);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -