본문 바로가기

개인공부121

Chapter 1 - 멀티쓰레드 프로그래밍 (2) DeadLock DeadLock 문제를 100% 완벽하게 해결할 수는 없음 class User { }; class UserManager { public: static UserManager* Instance() { static UserManager instance; return &instance; } User* GetUser(int32 id) { lock_guard guard(_mutex); return nullptr; } void ProcessSave(); private: mutex _mutex; }; class Account { }; class AccountManager { public: static AccountManager* Instance() { static AccountManager instan.. 2023. 3. 29.
Chapter 1 - 멀티쓰레드 프로그래밍 (1) 서버 개론 서버 : 다른 컴퓨터에서 연결이 가능하도록 대기 상태로 상시 실행중인 프로그램 영업중인 식당과 유사 손님이 올 수 있도록 식당을 열고 대기중 손님이 오면 메뉴 / 정책에 따라 서비스 제공 Web Server(HTTP Server) 테이크아웃 전문, 질의 / 응답 형태 정보를 드물게 요청 / 갱신, 손님에게 먼저 접근하지 않음 손님이 떠난 후에는 해당 손님의 상태를 당분간 잊고 지냄(Stateless) Game Server(TCP Server, Binary Server, Stateful Server) 일반 식당, 실시간 Interaction이 존재 요청 / 갱신 횟수가 많으며 직원이 손님에게 항상 접근 가능해야함 손님이 식당에 머무는 동안 손님의 상태에 따라 서비스를 제공(Stateful) 멀티.. 2023. 3. 29.
Chapter 12 - Modern C++ algorithm 자료구조 : 데이터를 저장하는 구조 알고리즘 : 데이터를 어떻게 사용할 것인가? #include #include #include using namespace std; int main() { srand(static_cast(time(nullptr))); vector v; for (int i = 0; i < 100; i++) { int num = rand() % 100; v.push_back(num); } // find() { int number = 50; vector::iterator itFind = find(v.begin(), v.end(), number); if (itFind == v.end()) cout 2023. 3. 29.
Chapter 11 - STL vector #1 STL(Standard Template Library) : 프로그래밍할 때 필요한 자료구조/알고리즘들을 템플릿으로 제공하는 라이브러리 컨테이너(Container) : 데이터를 저장하는 객체 (자료구조, Data Structure) 벡터(vector)는 컨테이너의 하위 개념 #include using namespace std; vector v; v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); v.push_back(5); const int size = v.size(); for (int i = 0; i < size; i++) { cout 2023. 3. 29.