- iocp는 이벤트 오면 벌써 다 받아진 것이다.
recv할 필요가없다.. (커피 예시..)
- iocp는 비동기 io ..
- 소켓에 네트워크 이벤트가 발생하면
iocp 이벤트핸드에서 알 수 있다..
- io completion queue
- getQueucompletion port는 쌓인 큐에서
데이터를 들고오는 작업..
````
iocp 핸들을 만들고,
알고싶은 소켓을 연결하고
io핸들하고 이벤트를 getQueuecommpletion..
으로 알아낸다..
`````
- 채팅서버도 방만들고 방안에 들어가서
채팅하는 것... 게임서버랑 비슷하다..
- 실패나 오류가 어려개 있을 때
enum class를 사용하는 것이 좋다
클라 서버 통신할 때도 오류를 찾기 쉽다..
- 벡터를 사용하면 유저를 10, 100 유동적으로
받을 수 있다...
- 벡터를 사용하면 데이터 접근을 랜덤하게 하고싶다.
- 중간에 데이터 삽입이나 삭제가 없을 경우
추천.. 이게 있으면 안좋다..
- 커널에서 해당 스레드가 일하도록 받았는데
sleep 시간이 0이라면 나는 일을 안하겠다.
yield해서 다른 실행 스레드에게 양도하는 것이다.
[debug와 release 모드 차이점]
- debug모드는 초기화해주지않아도 0값이
들어가지만, release모드는 코드를 최적화하여
실행파일 크기를 줄여서 초기화도 하지않는다..
- interlock체크, compare_exchange_weak체크.
- mutext보다 interlocked가 서능이 더 좋다
유저레벨, 커널레벨 동기화차이..
- lock_guard는 뮤텍스 소유와 해제를 한번에
RAII패턴..
- atomic이 좋은 이유는 락프리라서..
-
c++_korea_강의.