卧槽,不知道为什么会问出这样的问题,这两个东西毫无瓜葛放在一起问有些咬文嚼字了。不过还是要回答一下,万一对别人有用呢。
1.satb的全称是snaphot at the begining,是G1垃圾收集器在并发标记时为了避免出现漏标而采用的一种算法,细节是刚开始有一个快照,A引用B,当A指向B的引用消失的时候要把这个引用push到堆栈,保证B还能被GC扫描到,最重要的是要把这个引用push到堆栈,是灰色对象指向白色对象的引用,如果一旦某一个引用消失就会把它放进堆栈,因此还是可以扫描到它,这样白色的C就不会被漏标了.
2.tlab的全称是 Thread Local Allocation Buffer,JVM 默认给每个线程在 Eden 区中开辟一个 buffer 区域,默认占用 1%Eden 的空间,用来加速对象分配