SwitchToThread 함수(processthreadsapi.h)

호출 스레드가 현재 프로세서에서 실행할 준비가 되어 있는 다른 스레드에 실행 명령을 내리도록 합니다. 운영 체제는 실행할 다음 스레드를 선택합니다.

구문

BOOL SwitchToThread();

반환 값

SwitchToThread 함수를 호출하면 운영 체제가 실행을 다른 스레드로 전환한 경우 반환 값은 0이 아닌 값입니다.

실행할 준비가 된 다른 스레드가 없는 경우 운영 체제는 실행을 다른 스레드로 전환하지 않고 반환 값은 0입니다.

설명

실행의 수율은 호출 스레드의 프로세서에서 최대 하나의 스레드 예약 시간 조각에 적용됩니다. 운영 체제는 해당 프로세서가 유휴 상태이거나 우선 순위가 낮은 스레드를 실행하는 경우에도 실행을 다른 프로세서로 전환하지 않습니다.

생성 스레드의 시간 조각이 경과한 후 운영 체제는 생성 스레드에 대한 실행 일정을 조정합니다. 다시 예약은 생성 스레드의 우선 순위와 실행할 수 있는 다른 스레드의 상태 따라 결정됩니다.

운영 체제는 동시성 제어를 통해서만 실행되지 않는 스레드로 전환되지 않습니다. 예를 들어 I/O 완료 포트 또는 스레드 풀은 실행할 수 있는 연결된 스레드 수를 제한합니다. 최대 스레드 수가 이미 실행 중인 경우 실행 중인 스레드가 완료될 때까지 연결된 추가 스레드를 실행할 수 없습니다. 스레드가 SwitchToThread 를 사용하여 연결된 추가 스레드 중 하나가 일부 작업을 수행할 때까지 기다리는 경우 프로세스가 교착 상태에 빠질 수 있습니다.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0400 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 processthreadsapi.h(Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2에 Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

프로세스 및 스레드 함수

SuspendThread

스레드 실행 일시 중단

스레드