云计算仿真工具中文注释DeferredQueue.java

 
/*
 * Title:        CloudSim Toolkit
 * Description:  CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds
 * Licence:      GPL - http://www.gnu.org/copyleft/gpl.html
 *
 * Copyright (c) 2009-2010, The University of Melbourne, Australia
 */

package org.cloudbus.cloudsim.core;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

/**
 * 这个类是defer队列,使用linkedlist结构,元素按事件发生时间排序
 * 方法:
 * 添加事件
 * 返回迭代器
 * 返回大小
 * 清除队列
 * This class implements the deferred event queue used by {@link Simulation}.
 * The event queue uses a linked list to store the events.
 *
 * @author		Marcos Dias de Assuncao
 * @since		CloudSim Toolkit 1.0
 *
 * @see			Simulation
 * @see			SimEvent
 */
public class DeferredQueue {

	/** The list. */
	private final List<SimEvent> list = new LinkedList<SimEvent>();

	/** 
	 * The max time.
	 * 事件发生的最晚时间
	 *  */
	private double maxTime = -1;

	/**
	 * 事件加入队列时,维护元素的顺序,按事件发生事件顺序加入
	 * Adds a new event to the queue. Adding a new event to the queue
	 * preserves the temporal order of the events.
	 * @param newEvent The event to be added to the queue.
	 */
	public void addEvent(SimEvent newEvent) {
		// The event has to be inserted as the last of all events
		// with the same event_time(). Yes, this matters.
		//返回时间必须发生的时间
		double eventTime = newEvent.eventTime();
		if (eventTime >= maxTime) {
			list.add(newEvent);
			maxTime = eventTime;
			return;
		}

		ListIterator<SimEvent> iterator = list.listIterator();
		SimEvent event;
		//从第一个元素开始搜索
		while (iterator.hasNext()) {
			event = iterator.next();
			if (event.eventTime() > eventTime) {
				iterator.previous();
				iterator.add(newEvent);
				return;
			}
		}
		//队列为空
	    list.add(newEvent);
	}

	/**
	 * Returns an iterator to the events in the queue.
	 *
	 * @return the iterator
	 */
	public Iterator<SimEvent> iterator() {
		return list.iterator();
	}

	/**
	 * Returns the size of this event queue.
	 *
	 * @return the number of events in the queue.
	 */
	public int size() {
		return list.size();
	}

	/**
	 * Clears the queue.
	 */
	public void clear(){
		list.clear();
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值