读书人

java起用多进程调用某个类(是class文件

发布时间: 2013-07-26 11:27:42 作者: rapoo

java启用多进程调用某个类(是class文件)

import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.lang.management.ManagementFactory;import java.lang.management.RuntimeMXBean;public class MultipleProcessorAccess {    private static int processorCount = 5;//5    public static void main(String[] args) {    for (int i = 0; i < processorCount; i++) {      ProcessBuilder pb = new ProcessBuilder("java",          "PnSnapshotPerformanceTest");//d20130306.UseJConsole      pb.directory(new File("C:/Users/yfan/Desktop/multipleTest"));      BufferedInputStream in = null;      BufferedReader br = null;      try {        Process p = pb.start();                //returnCurrentProcessId();        // if wait the stream from server,         // when one processor end can start next processor,         // not multiple processor        /*in = new BufferedInputStream(p.getInputStream());        br = new BufferedReader(new InputStreamReader(in));        String s;        while ((s = br.readLine()) != null) {          System.out.println(s);        }*/      } catch (IOException e) {        e.printStackTrace();      } finally {        if (br != null) {          try {            br.close();          } catch (IOException e) {}        }        if (in != null) {          try {            in.close();          } catch (IOException e) {}        }      }    }  }    private static int returnCurrentProcessId() {    RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();    String name = runtime.getName();    int pid = Integer.parseInt(name.substring(0, name.indexOf("@")));    System.out.println("current process id: " + pid);    return pid;  }}

读书人网 >编程

热点推荐