Java虚拟机线程栈的设置

简介:

 线程栈是线程一块私有空间,在JVM中可以使用-Xss参数设置线程栈的大小。-Xss设置越大 线程数越小,且与堆大小有关。

 

当我们大量线程运行的时候,查看系统能最大承受的并发数.
测试:
Java虚拟机线程栈的设置_第1张图片

Java虚拟机线程栈的设置_第2张图片 

对线程栈设置内存大小关系,线程栈设置越大,能承受的线程数量就越少

Java虚拟机线程栈的设置_第3张图片

线程栈与堆内存的关系:

在栈不变的情况下,堆内存设置越大,线程数量越少,在这种情况下,如果需要大量的线程并发执行的时候,通常设置一个较小的堆和较小的栈内存
Java虚拟机线程栈的设置_第4张图片

总结:

如果系统需要大量的线程并发执行,那么设置一个较小的堆和较小的栈,有助于提高系统所能承受的最大线程数.
栈的设置,对于不是高并发的情况下,设置栈的深度越大,只是仅仅设置了一个栈的深度,但是对于高并发的情况下,栈的设置
对于每个线程的大小是一样的,这样的话线程数量就会减少。
到底如何权衡?
通常情况下应该保证堆内存的情况下,进行设置,具体需要根据项目的实际情况进行设置

java -Xss1M -Xmx500M -Xms500M Test8  推荐这种设置方式

在保证堆内存的情况下,降低一定线程数量以保证堆内存,来保证一个平衡的状态。


本地方法栈简介:

本地方法栈和java虚拟机栈的功能很相似,java虚拟机栈用于管理java函数的调用,而本地方法栈用于管理本地方法的调用。本地方法并不是java实现的而由C来实现。

在此不做测试说明,由Java虚拟机进行管理。

你可能感兴趣的:(Java虚拟机线程栈的设置)