java中satb和tlab有什么區別?#福大大架構師每日一題#
uj5u.com熱心網友回復:
SATB全稱snapshot-at-the-beginning,由Taiichi Yuasa為增量式標記清除垃圾收集器開發的一個演算法,主要應用于垃圾收集的并發標記階段,解決了CMS垃圾收集器重新標記階段長時間STW的潛在風險。
TLAB的全稱是Thread Local Allocation Buffer,即執行緒本地分配快取區,這是一個執行緒專用的記憶體分配區域。
uj5u.com熱心網友回復:
TLAB: Eden中一小塊的執行緒私有的區域,TLAB結合bump-the-pointer技術可以實作快速的物件分配,而不需要任何的鎖進行同步SATB:SATB僅僅對于在marking開始階段進行"snapshot"(marked all reachable at mark start);在marking階段中,對于從gray物件移除的目標參考物件標記為gray,對于black參考的新產生的物件標記為black;由于是在開始的時候進行snapshot,因而可能存在Floating Garbage
uj5u.com熱心網友回復:
簡單回答:satb: snapshot-at-the-beginning,快照。
tlab:thread local allocation buffer,執行緒本地分配緩沖。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/152963.html
標籤:Java相關
上一篇:HTTP Status 500 - Unable to compile class for JSP錯怎么解決
下一篇:出大事了,專案內容全不見了
