본문 바로가기

전체 글58

Semaphore Semaphore는 커널 오브젝트의 일종으로 동기화에 사용되는데 커널 오브젝트이다보니 유저모드에서 커널모드 전환이 일어나기때문에 CriticalSection보다 성능면에서 떨어 질 수 있다. 하지만 순서를 동기화 시키기 위해 어떤 작업들이 순서대로 일어나야 할 경우 사용 될 수 있다.#include HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG initialCount, LONG MaximumCount, LPCTSTR lpName );[출처] [API] 윈도우 기반의 쓰레드 동기화 - Semaphore, CreateSemaphore, ReleaseSemaphore|작성자 메르카츠initialCount는 세마포어의 초기 상.. 2017. 1. 9.
sockaddr 소켓 통신에서 소켓에 ip주소와 포트번호 등을 바인딩하기위해서sockaddr구조체를 이용한다. 이 구조체는 다양한 버전이 존재한다. 1) sockaddrstruct sockaddr{u_short sa_family; //address familychar sa_data[14]; //IP address + Port number} 해당 구조체는 TCP/IP만을 위한 주소 정보를 담는 구조체가 아니라 범용적으로 사용할 수 있게 추상화된 구조체이다. 2) sockaddr_instruct sockaddr_in{short sin_family; //주소 체계u_short sin_port; //포트 번호struct in_addr sin_addr; //IP 주소char sin_zero[8]; //전체 크기를 16bit로 맞.. 2017. 1. 9.
트리와 그래프 트리와 그래프의 차이 가장 큰 차이점은 그래프는 순환이 가능하다는 점이다.그래프에서의 노드와 노드는 모두 동등 관계지만 트리에서는 부모노드와 자식노드가 존재하기 때문에 모든 노드가 동등한 입장이 아니다.또한 그래프는 가중치 및 방향성을 가질 수 있다. 2016. 10. 30.
복사 생성자와 복사 대입연산자 #pragma once #include using namespace std; class CPerson { public: CPerson(const char* name, const int age); CPerson(void); ~CPerson(void); //복사 생성자 CPerson(const CPerson& copyPerson); //복사 대입연산자 CPerson& operator=(const CPerson& copyPerson); public: int iAge; char* strName; private: enum DEFULATVALUES { eMaxNameSize = 100 }; }; Person 클래스의 복사 생성자, 복사 대입연산자의 선언 부분이다. 선언 해주지 않으면 컴파일러가 디폴트 복사 생성자와.. 2016. 10. 22.