multithreading 2

락프리(Lock-Free) 알고리즘 이해하기

멀티스레드 프로그래밍 환경에서 동시성 제어는 성능과 직결되는 매우 중요한 문제입니다. 이번 글에서는 전통적인 락 기반 동시성 제어의 한계를 극복하기 위해 등장한 락프리(Lock-Free) 알고리즘에 대해 알아보고, 그 개념과 구현 방법, 그리고 장단점을 살펴보겠습니다.락프리 알고리즘이란?락프리(Lock-Free)는 이름 그대로 "자물쇠(Lock) 없이" 여러 스레드가 동시에 데이터를 처리하는 기술입니다.쉽게 비유하자면 회전문과 같습니다.락(Lock): 한 번에 한 명만 들어갈 수 있는 화장실입니다. 누군가 안에 있으면 밖에서 열쇠를 받을 때까지 마냥 기다려야 합니다.락프리(Lock-Free): 여러 사람이 동시에 지나갈 수 있는 회전문입니다. 가끔 문이 꽉 차서 한 바퀴 더 돌아야 할 수도 있지만, 멈추..

dev 2025.12.08

C++ 메모리 할당기 - tcmalloc, jemalloc

멀티스레드 최적화 힙 메모리 할당기: tcmalloc, jemalloc이글 UPDATE : https://cdecl.tistory.com/304왜 멀티스레드 메모리 할당기가 중요한가?기본 메모리 할당기(glibc의 malloc, Windows의 HeapAlloc)는 범용성을 목표로 설계되었지만, 멀티스레드 환경에서는 다음과 같은 문제로 성능이 저하됩니다:락 경합(Lock Contention): 다중 스레드가 동시에 메모리를 할당/해제할 때 락으로 인한 대기 시간 증가.메모리 단편화(Memory Fragmentation): 빈번한 할당/해제로 메모리 사용 효율 저하.ABI 호환성 문제: 서로 다른 컴파일러나 표준 라이브러리 간 메모리 관리 방식 차이로 인한 런타임 오류.tcmalloc, jemalloc, ..

dev 2025.05.19