본문 바로가기

전체 글

(74)
[게임서버/C++] Base Memory Allocating 보호되어 있는 글입니다.
[C++/게임서버] 스마트 포인터 보호되어 있는 글입니다.
[C++/게임서버] Referencing Count 지금까지 열심히 멀티스레딩 관련 공부를 진행했다. 이젠 메모리에 대한 정리를 진행하겠다. C++의 경우 다른 언어와 달리 직접적으로 메모리를 관리를 해줘야 하는 언어이기 때문에, 메모리에 대한 정책 또한 제대로 알고 갈 필요가 있다. 예로 들어 스타크래프트와 같은 게임을 개발한다고 가정하면 다음과 같이 코드를 짤 것이다. class Wraight { public : int _hp = 150; int _posX = 150; int _posY = 150; }; class Missile { public : void SetTarget(Wraight* target) { _target = target; } void Update() { int posX = target->_posX; int posY = target->..
[C++/게임서버] Deadlock Profiler 보호되어 있는 글입니다.
[C++/게임서버] Reader-Writer Lock 보호되어 있는 글입니다.
[C++/게임서버] ThreadManager 보호되어 있는 글입니다.
[C++/게임서버] Lock 기반 Stack/Queue 기본적으로 STL에서 제공하는 Stack이나 Queue는 Thread-Safe한 물건은 아니다 그렇기 때문에, 데이터를 push/pop하는 과정에서 락이나 그에 상응하는 방식으로 데이터의 원자성을 보장을 해줘야 한다. 다음과 같은 예시가 있다고 가정하자. queue q; void Push() { while (true) { int32 value = rand() % 100 + 1; q.push(value); this_thread::sleep_for(10ms); } } void Pop() { while (true) { if (q.empty()) continue; int32 value = q.front(); cout
[C++/서버] Thread Local Storage 보호되어 있는 글입니다.