Thread
Thread 이론
- (이론) 2. Thread기초 :
std::thread
,atomic
,mutex
기본 사용법, DeadLock 정의 - (이론) 3-1. Lock구현(SpinLock) :
atomic.compare_exchange_strong
이용 SpinLock - (이론) 3-2. Lock구현(Sleep) : SpinLock에
sleep
을 줘서 CPU점유율을 낮춘다 - (이론) 3-3. Lock구현(Event) : 한 번씩 발생하는 Event성 처리에 사용
- (이론) 3-4. Lock구현(Condition Variable) : Event방식의 문제(Event를 기다리는 부분과 Lock을 잡는 부분이 다름)을 해결
- (이론) 4. Future : 개발자가 thread를 생성하지 않고 단발성 비동기 이벤트 처리방법
- (이론) 5. CPU파이프라인
- (이론) 6. Memory model
- (이론) 7. Thread Local Storage(TLS)
- (이론) 8. Stack / Queue 안전하게 Lock 구현
- (이론) 9-1. LockFree Stack 구현 - 1 :
atomic
을 이용한 lockfree stack 구현, 삭제자는 미구현 - (이론) 9-2. LockFree Stack 구현 - 2 : 삭제자까지 구현
- (이론) 9-3. LockFree Stack 구현 - 3
- (이론) 10. LockFree Queue : 내용이 어려워서 당장은 정리하지 않음 이후 필요하다면 정리할 것.
Thread 구현
- (구현) 11. ThreadManager : ThreadManager를 통해 여러 Thread 관리하는 법 정리
- (구현) 12. Read Write Lock
- (구현) 13. DeadLock 감시기 구현
메모리 관리
메모리 관리 이론
- (이론) 15. 스마트 포인터 :
unique, weak, shared
메모리 관리 구현
- (구현) 14. Reference Counting : 내가 만들어 보는 스마트 포인터
- (구현) 16. Allocator :
new, delete
를 커스터마이징 - (구현) 17. Stomp Allocator
- (구현) 18. STL Allocator
- (구현) 19. Memory Pool-1
- (구현) 20. Memory Pool-2
- (구현) 21. Memory Pool-3
- (구현) 22. Object Pool
- (구현) 23. TypeCast
Network Programming
- (이론) 24. Socket Programming : WinSock Server, Client 기본 구성
- (이론) 25. TCP 서버 실습 : WinSock 내부 동작에 대한 설명 + send, recv에 대한 간단 구현
- (이론) 26. UDP 서버 실습
- (이론) 27. 소켓옵션
- (이론) 28. 논블로킹 소켓
- (이론) 29. (소켓입출력모델) Select 모델 : recv, send(입출력모델)을 확인 하는 방법중 하나인 select 정리
- (이론) 30. (소켓입출력모델) WSAEventSelect 모델 : Windows의 Event를 통해 입출력모델 구현
- (이론) 31. (소켓입출력모델) Overlapped Event 모델
- (이론) 32. (소켓입출력모델) Overlapped Callback 모델
- (이론) 33. (소켓입출력모델) Completion Port
네트워크 라이브러리 제작
- (구현) 34. Socket Utils
- (구현) 35. Iocp Core
- (구현) 36. Server Service
- (구현) 37. Session - 1
- (구현) 38. Session - 2
- (구현) 39. Session - 3
- (구현) 40. Recv Buffer
- (구현) 41. Send Buffer
- 42. SendBuffer Pooling
- 43. PacketSession
버퍼 직렬화
- 44. Buffer Helper
- 45. Packet Handler
- 46. UniCode
- 47. 패킷직렬화1
- 48. 패킷직렬화2
- 49. 패킷직렬화3
- 50. ProtoBuf
- 51. 패킷자동화1
- 52. 패킷자동화2
JobQueue
- 53-0. 채팅 실습 : 왜 JobQueue가 필요한가
- 53. JobQueue-1
- 54. JobQueue-2
- 55. JobQueue-3
- 56. JobQueue-4
- 57. JobQueue-5
- 58. JobTimer