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

📄 processuses.java

📁 这是一个在linux环境下
💻 JAVA
字号:
package fr.umlv.projet.procfs;import java.io.File;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** *  * @author MA Xiao Jun & HUANG Wei * */public class Processuses {	private static List<Processus> processuslist = new ArrayList<Processus>();	private static List<ProcessusTime> timelist = new ArrayList<ProcessusTime>();	/**	 * load information of processus from file "/proc".	 */	public synchronized static void loadProcess(){		saveProcessusTime();		processuslist.clear();		File f = new File("/proc");		String[] list = f.list();		for(String s : list){			try{				int pid = Integer.parseInt(s);				ProcessusTime pt = findProcessusTime(pid);				if(pt!=null)					addProcessus(new Processus(pid,pt.getOldctime(),pt.getOldstime(),pt.getOldtime()));				else 					addProcessus(new Processus(pid,0.0f,0.0f,0));			}			catch(Exception e){}		}		timelist.clear();	}	/**	 * Save the cpu time used by processuses to the list timelist.	 */	public static void saveProcessusTime(){		for(Processus proc : processuslist){			timelist.add(new ProcessusTime(proc.getPid(),proc.getOldctime(),proc.getOldstime(),proc.getOldtime()));		}	}	/**	 * find the information of ProcessusTime by means of finding pid.	 * @param pid id of the processus.	 * @return information of cpu time used by processus.	 */	public static ProcessusTime findProcessusTime(int pid){		for(ProcessusTime pt : timelist)			if(pt.getPid() == pid)				return pt;		return null;	}		/**	 * Return the list of processus.	 * @return processuslist which save the information of processus.	 */	public static List<Processus> getProcessusList(){		return processuslist;	}	/**	 * add processus to the list "processuslist".	 * @param processus the processus which is going to be add.	 */	public static void addProcessus(Processus processus){		processuslist.add(processus);	}		/**	 * Get the information of processus by means of pid.	 * @param pid the id of processus to be get.	 * @return if there is this processus return it,if not return null.	 */	public static Processus getProcessus(int pid){		for(Processus processus : processuslist){			if(processus.getPid() == pid)				return processus;		}		return null;	}		/*probleme*/	/**	 * Remove processus from "processuslist".	 * @param pid the id of processus.	 */	public static void removeProcessus(int pid){		for(Processus processus : processuslist)			if(processus.getPid() == pid)				processuslist.remove(processus);	} 	/**	 * Out put the "processuslist" by means of String.	 */	public String toString(){		StringBuilder sb = new StringBuilder();		for(Processus processus : processuslist){			sb.append(processus.toString());		}		return sb.toString();	}	/**	 * Return the number of processuses.	 * @return number of processuses.	 */	public static int getProcessNumber(){		return processuslist.size();	}		/**	 * validate if the pid(processus) is exist.	 * @param pid id of processus.	 * @return result of validating.	 */	public static boolean isExist(int pid){		for(Processus proc:processuslist){			if(proc.getPid() == pid)				return true;		}		return false;	}		/**	 * Return the number of threads.	 * @return number of threads.	 */	public static int getThreadNumber(){		int num = 0;		for(Processus proc : processuslist){			num += Integer.parseInt(proc.getThreads());		}		return num;	}		/**	 * Return the number of Handles. 	 * @return number of Handles.	 */	public static int getHandleNumber(){		String s = "";		try {			Scanner sc = new Scanner(new File("/proc/sys/fs/file-nr"));			s = sc.next();		} catch (FileNotFoundException e) {			e.printStackTrace();		}		return Integer.parseInt(s);	}		public static void main(String[] args){		for(Processus pro : processuslist){			System.out.println(pro.getPid()+"  "+pro.getUid()+" "+pro.getUser());		}	}}

⌨️ 快捷键说明

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