일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 2025 프로그래머스 코딩챌린지 1차예선
- render target
- boj 22942
- pccp 기출문제 풀이
- boj 21921
- boj 1074
- pcce 기출문제 풀이
- lock free stack
- 데이터 체커
- tessellation
- 프로그래밍공부
- c++
- lock based stack
- lock based queue
- LCS
- PCCE
- boj 6443
- boj 15724
- boj 20207
- DirectX12
- 지게차와 크레인
- boj 1958
- 비밀 코드 해독
- dp
- orthographic projection
- 홀짝트리
- 브루트포스
- DirectX
- boj 11053
- 색종이와가위
- Today
- Total
목록Game/Server (5)
오구의코딩모험

Lock-Free Stack 학습 정리 (上편) 멀티스레드 환경에서 Stack을 공유할 경우, 일반적으로는 mutex를 사용해 동기화합니다.하지만 잠금(lock)은 성능을 떨어뜨릴 수 있습니다.그래서 오늘은 Lock-Free Stack, 즉 락 없이 작동하는 스택에 대해 공부했습니다!compare_exchange_weak 같은 CAS(Compare-And-Swap) 연산을 사용해서 락 없이도다중 스레드 환경에서 안전하게 Push와 Pop을 수행할 수 있다는 게 핵심입니다. Lock-Free Stack이란? Lock-Free Stack은 이름 그대로 락(mutex 등)을 사용하지 않고도 멀티스레드 환경에서 안전하게 동작하는 자료구조입니다.이 스택은 atomic 포인터와 연산을 기반으로 구현되며, 핵심은..

메모리 모델, TLS, 락 기반 자료구조 학습 정리 이번엔 C++ 멀티스레드 프로그래밍에서 중요한 개념들인 Memory Model, Thread Local Storage, atomic, 그리고 Lock-Based 자료구조(스택/큐)를 공부했습니다. 1. 메모리 모델 (Memory Order) Memory Model (정책) 1) Sequentially Consistent (seq_cst) 2) Acquire-Release (acquire, release) 3) Relaxed (relaxed) (1) seq_cst (가장 엄격 = 컴파일러 최적화 여지 적음 = 직관적) - 가시성 문제 바로 해결! 코드 재배치 바로 해결! (2) acquire-release - 딱 중간! - release 명령 ..

멀티스레드 동기화와 비동기 처리: condition_variable & future 서버 개발에서는 멀티스레드를 다룰 때 반드시 스레드 간 동기화와 비동기 처리에 대한 이해가 필요합니다. 오늘은 'condition_variable'을 이용한 생산자-소비자 패턴 구현, 그리고 'future', 'promise', 'packaged_task'를 사용한 비동기 처리 방식에 대해 공부했습니다. 1. condition_variable핵심 개념- condition_variable은 한 스레드가 특정 조건을 충족했을 때 다른 스레드에게 알림을 보내는 동기화 도구입니다. - 일반적으로 mutex와 함께 사용하며, 생산자-소비자 구조에 적합합니다. 아래는 Producer 스레드가 데이터를 추가하고 Consume..

서버 개발에서 배우는 동기화 기법 서버 개발에서는 성능 최적화와 동기화를 위한 다양한 기법이 사용됩니다.이번 글에서는 volatile, SpinLock, Sleep, Event (Auto Reset Event / Manual Reset Event) 등의 학습한 내용을 정리합니다. int32 a=0;a = 1;a = 2;a = 3;a = 4;1. volatile: 컴파일러 최적화 방지volatile이란?- volatile 키워드는 컴파일러의 최적화를 방지하는 기능을 합니다. - 일반적인 코드에서 불필요한 대입 연산이 제거되지만, volatile을 선언하면 모든 연산이 실행됩니다. 예제 개념- 변수 a가 여러 번 대입되는 경우, 컴파일러는 불필요한 연산을 제거하여 최적화합니다. - 하지만 volat..

멀티스레드와 동기화 기법: 게임 서버와 병렬 프로그래밍 멀티스레드는 게임 서버와 같은 고성능 프로그램에서 필수적인 요소입니다.이번 글에서는 Web Server와 Game Server의 차이, 멀티스레드와 동기화 문제, Atomic과 Mutex, Deadlock의 위험과 해결법을 중심으로 학습한 내용을 정리합니다. 1. Web Server와 Game Server의 차이 Web Server (HTTP Server)- Web Server는 질의/응답 형태로 작동합니다. * ex) 테이크아웃 전문 식당처럼 요청에 대한 응답을 빠르게 처리.Game Server (TCP Server, Binary Server, Stateful Server)- Game Server는 실시간 상호작용(Interaction)을..