1、功能不同
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
2、工作原理不同
在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。
3、作用不同
进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。
常用的参数有:
-Xms
初始大小内存,默认为物理内存1/64,等价于-XX:InitialHeapSize
-Xmx
最大分配内存,默认物理内存1/4,等价于-XX:MaxHeapSize
-Xss
设置单个线程栈的大小,默认542K~1024K ,等价于-XX:ThreadStackSize
-Xmn
设置年轻代的大小
-XX:MetaspaceSize
设置元空间大小
元空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间与永久代最大的区别在于:元空间并不在虚拟机中,而是在本地内存中。 因此,默认元空间的大小仅受本地内存限制
-XX:+PrintGCDetails
输出详细GC收集日志信息
[名称:GC前内存占用-\u003eGC后内存占用(该区内存总大小)
-XX:SurvivorRatio
设置新生代中Eden和S0/S1空间的比例
默认-XX:SurvivorRatio=8,Eden:S0:S1=8:1:1
-XX:NewRatio
设置年轻代与老年代在堆结构的占比
默认-XX:NewRatio=2 新生代在1,老年代2,年轻代占整个堆的1/3
NewRatio值若为k,则老年代占比:新生代占比 = k : 1
-XX:MaxTenuringThreshold
设置垃圾的最大年龄
默认-XX:MaxTenuringThreshold=15
如果设置为0,年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大的值,则年轻代对象回在Survivor区进行多次复制,这样可以增加对对象在年轻代的存活时间,增加在年轻代即被回收的概率。
-XX:+UseSerialGC
串行垃圾回收器
-XX:+UseParallelGC
热图推荐
大货车为避让变道车辆撞向桥墩 没有造成人员伤亡
提升农作物秸秆利用效率 西洋店镇积极探索秸秆利用
倡导夜间加油 助力北京能源与自然和谐共生
贝佐斯将于第三季度辞去亚马逊首席执行官 担任董事
最近更新