(1)引言:
java虚拟机一般都有一个几M的内存消耗预留空间.如果并行运行多个java小应用程序的话,有可能占用了很多不必要的内存空间,造成内存资源的枯竭,比如有时候经常开启一些系统监听进程和服务进程等.
(2)解决方案:
运行多个应用程序会启动多个java虚拟机进程,这就带来了一定的内存的开销,可以考虑将这些小应用程序合并到在一个java虚拟机进程中运
行,就可以节省一定数量的内存消耗,最终带来性能上的提高.
(3)程序代码如下:
Test类的源代码:
public class Test {
public static void main(String[] args) throws IOException{
System.out.println("Test has started");
System.in.read();
}
}
TestMerger类的源代码:
public class TestMerge {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException, IOException {
Class classobject = Class.forName("testrandomaccess.Test");
Class[] mainParamType = {args.getClass()};
Method main = classobject.getMethod("main", String[].class);
Object[] mainParam = {args};
main.invoke(null, mainParam);
System.in.read();
}
}
(4)说明:
该段程序使用了java中的反射机制
,找到想运行的类的main方法,在TestMerger的main方法中启动运行,使得两者合并到了同一个java虚拟机中.
运行程序后,我使用windows的进程管理器,发现果然只产生了一个java虚拟机进程java.exe
(一共有两个,还有一个是netbean产生的).
截图如下:
- 大小: 45.4 KB
分享到:
相关推荐
一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java线程:线程栈模型与线程的...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
15.4 合并java中的多进程与系统优化 小结 附录a together工具的使用简介 附录b j2se 5.0的新特性与性能的提升 附录c 编排代码的精美工具jxbeauty 使用有道云笔记,轻松同步、管理您各终端的所有笔记。三重备份,...
java线程池处理多并发,所有进程执行完后再统一处理结果线程池配置类多线程并行demo 线程池配置类 import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation....
15、Java中有没有多继承? 16 16、抽象类和接口的区别? 17 17、java中实现多态的机制是什么? 17 19、String和StringBuffer的区别?StringBuffer和StringBuilder区别? 17 21、数组中有没有length()方法,String中...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 ...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...
一个进程中包含多个线程,只有一个主线程 线程的休眠是指让线程暂时停止执行一段时间,然后再继续执行。在休眠期间,线程不会占用CPU资源,可以用来等待某个条件满足或者定时执行任务。 线程的礼让是指一个线程主动...
该库的两个基本前提是: 每个生成标识符的进程都必须声明或分配一个代表其生成器ID的编号,并将其合并到它生成的标识符中生成标识符的每个进程都必须使其时钟同步,并且必须将当前时间戳纳入其生成的标识符中进程每...
将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。 应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。 线程本地握手,不执行全局 VM...
如果基础还行,可以在此代码基础之上做改动以实现更多功能。 基于动态分区算法的内存分配模拟程序,包括首次适应算法,最佳适应算法、最坏适应算法。 一、项目功能 1. 提供三种动态分区模拟算法:首次适应算法,...
多进程检查MD5值重复文件 concat_file.py 合并文件,和linux的paste命令类似 get_gaze_value.py 获取人脸识别服务器端注视的错误统计 get_live_server_result.py 获取人脸识别服务器端活体的错误统计 get_range.py ...
多进程检查MD5值重复文件 concat_file.py 合并文件,和linux的paste命令类似 get_gaze_value.py 获取人脸识别服务器端注视的错误统计 get_live_server_result.py 获取人脸识别服务器端活体的错误统计 get_range.py ...
nginx是多进程网络编程的巅峰,模块化: memcached虽然是C++,但是C style的,多线程网络编程的巅峰数据结构: 数据库:SQLite,数据理论的范例。注意要去读非合并源文件版的(为了方便编译器优化,有个单文件版的): ...
多进程检查MD5值重复文件 concat_file.py 合并文件,和linux的paste命令类似 get_gaze_value.py 获取人脸识别服务器端注视的错误统计 get_live_server_result.py 获取人脸识别服务器端活体的错误统计 get_range.py ...