Thread 22

[Thread][Windows] GetExitCodeThread() 함수로 스레드가 종료되었는지 체크

http://msdn.microsoft.com/ko-kr/library/windows/desktop/ms683190(v=vs.85).aspx BOOL WINAPI GetExitCodeThread( _In_ HANDLE hThread, _Out_ LPDWORD lpExitCode ); This function returns immediately. If the specified thread has not terminated and the function succeeds, the status returned is STILL_ACTIVE. If the thread has terminated and the function succeeds, the status returned is one of the followi..

Thread/Windows 2014.09.30

[스크랩][Thread][Windows] Sleep과 SwitchToThread의 차이

원문 : http://sweeper.egloos.com/viewer/2942286 Sleep과 SwitchToThread는 얼핏보면 비슷해 보이지만, 의외로 많은 차이점이 있다.이 차이점에 대해 명확하게 정리하고 넘어가자. Sleep http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=vs.85).aspx 스레드는 Sleep 함수를 호출하여 일정 시간 동안 자신을 스케쥴하지 않도록 운영체제에게 명령을 내릴 수 있다. VOID Sleep(DWORD milliseconds); 이 함수를 호출하면, milliseconds 매개변수로 주어진 시간만큼 쓰레드를 일시 정지시키게 된다.Sleep 함수는 다음과 같은 특징을 가진다. 1) Sleep을 ..

Thread/Windows 2014.09.29

[Thread] Priority Inversion

출처: http://hagis.blog.me/110021051921 Priority Inversion(우선순위 역전)은 유명한 리얼타임 스케쥴링 문제 중 하나이다. 리얼타임 시스템은 단순히 '정확성'만 보장하는 컴퓨팅과는 달리 '시간'이라는 조건도 보장해주는 특징이 있다. 데스크탑에서는 어떠한 스레드가 어떤 시간 내에 반드시 수행되어야 한다는 조건을 항상 보장 할 수 없다. 아무리 빠른 CPU 덕택에 반응 속도가 높아져도 확실한 보장과는 차이가 있는 것이다. 예를 들어, 리얼타임 운영체제가 사용되는 원자로나 자동차의 ABS 시스템 같은 경우, 중요한 임무를 담당하는 프로세스는 반드시 주어진 시간 내에 작업을 마쳐야 한다. 그렇지 아니하면 그 결과는 상당히 심각해질 수 있기 때문이다. 대부분의 로봇이나 자..

Thread 2014.04.25

[Thread] Thread Safe

스레드 안전이란 스레드에서 사용해도 안전한 코드를 말한다.스레드 안전이라는 것에는 더 세분화되어 재진입, 원자적 실행 등의 용어로 나눠서 쓰기도 한다. 우선 안전(Safe)하다는 것의 의미는- 프로세스의 치명적인 중단을 일으키지 않음- 기능을 제대로 수행함이렇게 생각하면 된다.즉 프로세스는 죽이지는 않지만 결과가 분명하지 않은 경우를 쓰레드 안전에 위배된다고 하는 것이다.스레드 안전을 만족하는 함수를 TSF(Thread-Safe Function) 라고 한다. 스레드 안전은 보통 함수 단위를 말하는 경우가 많다.스레드 안전을 이해하기 위해서는 우선 스레드에 안전하지 않은 코드가 어떤 것인지부터 알아야 한다. 스레드에 안전하지 않은 필요조건은 여러 개의 스레드가 해당 코드를 실행했을 때 예측할 수 없는 결과..

Thread/팁 2013.12.28

[Thread][Windows] DuplicateHandle

출처 : http://hongten.egloos.com/265139 서로 다른 프로세스 사이에서 커널 오브젝트를 공유하는 마지막 방법으로 DuplicateHandle() 함수를 사용하는 것이다. BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, PHANDLE phTargetHandle, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOptions ); 단순히, 이 함수는 하나의 프로세스 핸들 테이블의 핸들을 다른 프로세스의 핸들 테이블로 복사한다. DuplicateHandle() 함수는 여러개의 인수를 가지고 있지만 실제로 아주..

Thread/Windows 2013.10.19
반응형