いくつかの情報を保持するテキストファイルをロードし、その情報に基づいて複数のスレッドを実行するプログラムがあります。各スレッドはプロセスです。ここに私のコードです:私はrunMultiClient
クラスからその変数に到達することができますどのような方法がありますプロセスのCPU使用率を取得する
OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class);
cpuLoad = osBean.getProcessCpuLoad();
:私のClient.jar
ファイル内
public class runMultiClient {
public static void main(String[] args){
List<Process> PRlist = new ArrayList<Process>();
List<String[]> commandsList = new ArrayList<String[]>();
boolean running = true;
if (args.length == 2 && args[0].matches("-f")){
String dir = System.getProperty("user.dir");
String path = dir + "/" + args[1];
FileReader fr;
try {
fr = new FileReader(path);
BufferedReader bf = new BufferedReader(fr);
String line = "";
while ((line = bf.readLine()) != null){
String[] tk = line.split(" ");
String[] cmd = {"java", "-jar", "Client.jar", "-a", tk[0], "-p", tk[1],
"-u", tk[2], "-pw", tk[3], "-m", tk[4], "-s", tk[5]};
Process pr = new ProcessBuilder().inheritIO().command(cmd).start();
PRlist.add(pr);
commandsList.add(cmd);
System.out.println(tk[4] + " streaming process is established.");
}
}
catch (FileNotFoundException ex) {ex.printStackTrace();}
catch (IOException ex) {ex.printStackTrace();}
} else {
System.out.println("No stream file was specified.");
}
}}
、私は、そのクラスのCPU負荷を監視する変数を持っています? そうでない場合は、実行中のプロセスでOperatingSystemMXBean
を使用する方法はありますか? 私はpr.getClass()
を試しましたが、それはどこにもありません。 ご協力いただければ幸いです。
は、あなたがそのすなわち、cpuload変数の完全なクラスを提供することができます位置しています ? – developer
私はできますが、それはどのようにあなたを助けますか? –
'cpuLoad'は他のクラスのパブリック変数です。 –