프로그래밍

    TSC(Time Stamp Counter)란?

    Time Stamp Counter(TSC)는 64비트 레지스터이다. 이는 펜티엄 이후의 모든 x86 프로세서에서부터 있었다. RDTSC 명령은 EDX:EAX상의 TSC를 반환한다. x86-x64 모드상에서, RDTSC는 RAX와 RDX의 상위 32비트를 클리어한다. OPCODE는 0x0F 0x31 이다. 펜티엄의 경쟁상대인 Cyrix 6x86은 TSC를 가지고 있지 않으며 RDTSC는 부적절한 명령으로 받아들인다. Cyrix는 MII안에 TSC를 포함하고 있다. 위키피디아(http://en.wikipedia.org/wiki/Time_Stamp_Counter)에서 퍼온 내용인데. 이 TSC의 활용법은 유니크한 값을 얻기 위해서 사용한다. 주로 다음과 같은 곳에 사용할 수 있을것이다. - 유니크한 값 획득...

    20140402 구디역 벚꽃 산책코스

    점심에 치맥! 좋네유...

    This function is thread-safe.

    https://kldp.org/node/36904 ["쓰레드 세이프(thread-safe)란 무엇인가요?"] 오픈 소스를 보다가 This function is thread-safe 라는 주석을 볼 수 있었다. 뭐 대충은 어떤 의미인지 알 것 같기는 하지만 궁금해서 검색 해보았더니 고수분들이 신나게 설명 해주셨는데, 간단하게 정리를 해보면 Multiple Thread 환경에서 딱히 동기화(세마포어, 뮤텍스 등)처리를 하지 않는다고 해도 해당 함수는 역할을 수행 하는데 별 지장을 받지 않는다는 뜻이라고 한다. 위의 링크를 들어가보면 자세하게 알 수 있다.

    C++ 클래스 내부에서의 스레드 함수 사용법

    c++ 내부에서 스레드함수를 선언 할 때에는 static으로 선언해서 사용해야 한다고 알고 있다. 하지만 static으로 선언할 경우에는 스레드 함수에서 멤버변수를 사용할 수가 없다. 이럴때에 아래의 방법으로 사용하시면 멤버변수에 접근가능한 스레드함수를 생성하실 수 있다. 안전해보이는 코딩법은 아니다.class ClassA { private: HANDLE m_hThreadA; //스레드 핸들 DWORD m_dwThreadAId; public: ClassA(void); ~ClassA(void); BOOL InitFunc(void); static DWORD WINAPI ThreadA(LPVOID lpArg); DWORD ThreadA(void); } BOOL ClassA::InitFunc(void) { BO..