As i read from:
http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/tune_app_thruput.html#wp998772
the TLA is: Thread Local Areas (TLAs) are chunks of free memory used for object allocation. The TLAs are reserved from the heap and given to the Java threads on demand, so that the Java threads can allocate objects without having to synchronize with the other Java threads for each object allocation.
I supposed that the Thread Stack area is used for this purpose (and also keep the stuck calls).
What exactly is the difference?
As the definition says the Thread Local Area is a portion of the heap where each thread can allocate objects. All threads access the same heap: Thread 1 can access objects created by Thread 2 and vice-versa; TLA separates the heap only for object allocation: each thread can only allocate objects in that area, but can access any object in the heap.
The thread stack is a portion of the stack; each thread has its own stack and the thread stack size mentions the size of the stack. A thread cannot access the stack of other threads.
TLAs are part of the heap. Stacks are not on the heap.
See this other question if you don't understand the difference between stack and heap.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With