java – 线程局部区域(TLA)和线程堆栈大小(Xss)之间有什么区别?

正如我读到的:

http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/tune_app_thruput.html#wp998772

TLA是:线程局部区域(TLA)是用于对象分配的空闲内存块. TLA从堆中保留并根据需要提供给Java线程,以便Java线程可以分配对象,而无需为每个对象分配与其他Java线程同步.

我认为线程堆栈区域用于此目的(并且还保持卡住的调用).

究竟有什么区别?

最佳答案
正如定义所说,线程局部区域是堆的一部分,每个线程可以在其中分配对象.所有线程都访问同一个堆:线程1可以访问线程2创建的对象,反之亦然; TLA仅为对象分配分离堆:每个线程只能分配该区域中的对象,但可以访问堆中的任何对象.

线程堆栈是堆栈的一部分;每个线程都有自己的堆栈,线程堆栈大小提到堆栈的大小.线程无法访问其他线程的堆栈.

转载注明原文:java – 线程局部区域(TLA)和线程堆栈大小(Xss)之间有什么区别? - 代码日志