jvm堆内存的数据共享
以前没学jvm的时候,老师总是讲在堆内存中的数据是共享的,多个线程可以使用堆中的同一个数据,于是才会有加锁的操作。
其实,堆里的数据就是是共享的
那么TLAB是怎么一回事呢?
首先对象分配时,现在当前线程中的TLAB中查看空间是否有多余,如果有,则分配到此线程中的TLAB中。
1.TLAB是在堆内存中的Eden中的一块小内存,只占整个Eden中的1%
2.TLAB是每个线程独享的,但是TLAB中的数据是共享的。
相信有朋友发现了,如果当前线程的TALB空间不足怎么办?
TLAB空间不足时,jvm采取什么策略?