Thread-Local Allocation Buffers

2025-05-07

여러 스레드가 객체를 동시에 실행하게 되면, 같은 메모리 블록을 할당 받을 수도 있다. 이를 방지하기 위해 스레드간의 동기화를 하는데, 모든 메모리에 대한 동기화를 하게 되면 비용이 크다.

이를 해결하기 위해 TLAB을 사용하게 되는데, TLAB 은 Tread-Local Allocation Buffers의 약자로 각 스레드에게 Eden 영역 내에 독립적인 작은 메모리 영역을 할당하는 것이다.

이를 통해 각 스레드가 별도의 독립적인 메모리 공간에 접근하므로 Race Condition이 발생하지 않는다.

https://www.baeldung.com/java-jvm-tlab 이 게시물에서는 TLAB를 그림으로 쉽게 알려준다.