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

📄 countdispatcher.java

📁 分布式计算平台P2HP-1的源代码;P2HP-1是基于P2P的高性能计算平台
💻 JAVA
字号:
/*
 * Created on 2005-4-1
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package cn.edu.hust.cgcl.biogrid.monitor;

import java.util.LinkedList;
import java.util.ListIterator;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class CountDispatcher {

	private final Timer timer = new Timer(true);
    private final int minutes;
    private Vector dispatcherArray;
    
    private int c=0;
    private Integer in;
    private boolean computeFlag=true;
    
    public static int dispatcherCount[];
    //public static int dispatcherCountTemp[];
    private LinkedList ll;

    public CountDispatcher(int minutes,Vector dispatcherArray) {
    	dispatcherCount=new int[60];
    	for(int j=0;j<60;j++)
    		dispatcherCount[j]=0;
    	//workerCountTemp=new int[60];
    	ll=new LinkedList();
        this.minutes = minutes;
        this.dispatcherArray=dispatcherArray;
    }

    public void start() {
        timer.schedule(new TimerTask() {
            public void run() {
                count();
//                System.out.println("the count of dispatcher is: "+dispatcherArray.size());
//                for(int j=0;j<60;j++)
//        			System.out.print(dispatcherCount[j]+" ");
//                System.out.println();
                //timer.cancel();
            }
            private void count() {
                // Start a new thread to count...
            	in=new Integer(dispatcherArray.size());
        		ll.add(in);
            	if(computeFlag)
            	 {
            		for(int j=59-c;j<59;j++)
            			dispatcherCount[j]=dispatcherCount[j+1];
            		dispatcherCount[59]=dispatcherArray.size();
            		if(++c>=60)
            			computeFlag=false;
            	 }
            	else 
            	{
            		c=0;
            		ListIterator iter=ll.listIterator();
            		iter.next();
            		iter.remove();
            		while(iter.hasNext())
            		{
            			dispatcherCount[c++]=((Integer)(iter.next())).intValue();
            		}
            		
            	}
            }
        }, minutes *1000,minutes *60 *1000);
    }
    
    public void quit()
    {
    	timer.cancel();
    }
}

⌨️ 快捷键说明

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