Java 定义单个线程的最大堆大小

Java 定义单个线程的最大堆大小,java,heap-memory,Java,Heap Memory,是否可以为特定的新线程定义最大堆分配(考虑低于分配给JVM的最大堆大小的限制) 示例:将VM设置为-Xms=24m-Xmx=48m,并以编程方式将最大线程堆大小设置为8m不可以,因为堆是通过设计跨线程共享的。但是,如果您有stackoverflow(特定于线程),则可以使用-Xss来更改堆栈大小。除非您正在与堆栈溢出作斗争,否则您不太可能需要改变这一点 (然而,如果您确实需要这样做,您可能会尝试进行托管堆外分配,这样您就可以重新控制内存的使用方式,但与对象相比,处理bytebuffers非常不方

是否可以为特定的新线程定义最大堆分配(考虑低于分配给JVM的最大堆大小的限制)


示例:将VM设置为
-Xms=24m-Xmx=48m
,并以编程方式将最大线程堆大小设置为8m

不可以,因为堆是通过设计跨线程共享的。但是,如果您有stackoverflow(特定于线程),则可以使用-Xss来更改堆栈大小。除非您正在与堆栈溢出作斗争,否则您不太可能需要改变这一点


(然而,如果您确实需要这样做,您可能会尝试进行托管堆外分配,这样您就可以重新控制内存的使用方式,但与对象相比,处理bytebuffers非常不方便……)

不,您不能这样做,因为堆是通过设计跨线程共享的。但是,如果您有stackoverflow(特定于线程),则可以使用-Xss来更改堆栈大小。除非您正在与堆栈溢出作斗争,否则您不太可能需要改变这一点


(但是,如果您确实需要这样做,您可以尝试执行托管堆外分配,这样您就可以重新控制内存的使用方式,但与对象相比,处理bytebuffers非常不方便……)

据我所知,堆是所有线程的共享内存,他们唯一拥有的是自己的虚拟堆栈,可以使用
-Xss
标志将其设置为最小但不是最大大小。据我所知,堆是所有线程的共享内存,他们唯一拥有的是自己的虚拟堆栈,可以使用
-Xss
标志将其设置为最小但不是最大大小。