`

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;
  }
}


分享到:
评论

相关推荐

    C#调用Matlab COM示例

    添加引用后,你就可以在C#代码中使用Matlab的类和方法了。 以下是一个简单的C#调用Matlab绘制3D曲线的示例: ```csharp using System; using System.Runtime.InteropServices; using MATLAB; public class ...

    java各大公司面试题总结

    - 选项C错误: 实例方法无法直接调用其他类的实例方法,需要先创建该类的实例。 - 选项D正确: 实例方法可以直接调用本类的类方法,无需通过类名。 #### 4. 方法覆盖与返回类型的规则 - **问题**: 如下代码输出是...

    Java 面试 项目管理

    - **性能**:Servlet是基于JVM的,可以在一个进程中多次调用,而CGI每次请求都会启动一个新的进程,性能较低。 - **资源共享**:Servlet可以轻松地在多个请求之间共享数据,而CGI每次请求都需要重新加载资源。 - ...

    java面试宝典

    - 它不能同时继承一个类并实现多个接口,也不能实现Java的非public接口。 3. StaticNestedClass(静态内部类)和InnerClass(内部类)的区别: - 静态内部类不需要外部类实例即可创建,而内部类需要外部类实例才能...

    2024年Java高工面试题 2024年Java高工面试题 2024年Java高工面试题

    - **编译**: 使用`javac`命令将.java文件编译成.class文件。 - **类装载子系统**: JVM的类装载子系统负责读取.class文件,并将其转换为运行时数据结构。 - **字节码执行引擎**: 解释执行或通过JIT编译器编译后的机器...

    Java面试题集大全

    根据提供的文件信息,我们可以从中提炼出一系列与Java相关的知识点,具体包括但不限于以下几个方面: ### 1. Java异常处理机制 - **基础知识**:Java中的异常处理机制是通过`try-catch-finally`语句块来实现的。当...

    java经典面试题

    - 验证:确保加载的类文件符合 Java 语言规范。 - 准备:为静态变量分配内存。 - 解析:将符号引用转换为直接引用。 - 初始化:执行类的初始化方法 `()`。 10. **双亲委派模型**: - Bootstrap ClassLoader:...

    Java程序员面试宝典2012最新出炉

    - 在一个`.java`源文件中确实可以定义多个类,但其中只能有一个公共类(public class),并且该公共类的名字必须与源文件名相同。例如,如果源文件名为`Main.java`,则必须包含一个名为`Main`的公共类。此外,其他非...

    117道JAVA面试题

    它们是基于Java RMI技术的分布式组件,可以跨进程、跨计算机进行远程调用。EJB必须部署在特定的容器中,如Websphere或WebLogic,由这些容器负责创建、管理EJB实例,客户端通过容器间接访问EJB组件。 2. **Static ...

    学习java必掌握的词汇

    - **Java Build Path**: Java项目的构建路径,指定了编译器如何找到类文件和库的位置。 - **库(Libraries)**: 构建路径中包含的第三方库。 - **添加库(AddLibrary)**: 向项目的构建路径添加外部库。 - **用户库...

    java面试题和基础知识汇总超详细

    3. 该类对应的`java.lang.Class`对象没有被任何地方引用,即无法通过反射访问该类的方法。 #### JSP包含技术 - **动态包含**:使用`&lt;jsp:include&gt;`标签实现,该标签会在每次请求时检查被包含文件是否有更新。 - **...

    Java面试宝典

    - **解析**: 实例方法可以直接调用本类中的类方法,但若要调用超类或其它类的实例方法,则需要通过相应的对象引用来进行调用。 **4. 方法重写与返回类型** - **题目**: 输出是什么? - **代码示例**: ```java ...

    设备禁用与启用源码

    例如,通过改变`/sys/class/xxx/device/state`目录下的"enabled"文件的值,可以实现设备的禁用与启用。udev则负责动态管理设备,它会根据设备属性创建规则,这些规则可以决定设备何时启用或禁用。 对于源码实现,...

    中科软JAVA面试题

    Servlet和CGI的主要区别在于,Servlet是基于Java的持久化服务器端进程,而CGI是每次请求都会创建新的进程,效率较低。 【ArrayList, Vector, LinkedList的区别】 ArrayList基于动态数组,访问速度快,但插入和删除...

    最新java面试笔试题大汇总

    - **finalize**: 是`Object`类中的一个方法,用于垃圾回收机制,在对象即将被回收前由垃圾收集器调用,给对象最后一次机会来清理资源或完成必要的操作。从Java 9开始,finalize方法被认为是过时的。 #### 二、匿名...

Global site tag (gtag.js) - Google Analytics