다음을 통해 공유


스레드 실행 일시 중단

스레드는 다른 스레드의 실행을 일시 중단하고 다시 시작할 수 있습니다. 스레드가 일시 중단되는 동안에는 프로세서에서 시간이 예약되지 않습니다.

스레드가 일시 중단된 상태( CREATE_SUSPENDED 플래그 사용)로 만들어지면 다른 스레드가 일시 중단된 스레드에 대한 핸들을 사용하여 ResumeThread 함수를 호출할 때까지 실행이 시작되지 않습니다. 이는 스레드가 실행되기 전에 상태를 초기화하는 데 유용할 수 있습니다. 스레드를 만들 때 일시 중단하면 일시 중단된 스레드가 ResumeThread를 호출할 때 해당 코드의 시작점을 실행하므로 일회성 동기화에 유용할 수 있습니다.

SuspendThread 함수는 스레드 실행이 일시 중단되는 코드의 지점을 제어하지 않으므로 스레드 동기화에 사용되지 않습니다. 이 함수는 주로 디버거에서 사용하도록 설계되었습니다.

스레드는 Sleep 또는 SleepEx 함수를 호출하여 지정된 간격에 대한 실행을 일시적으로 생성할 수 있습니다. 이는 스레드가 사용자 상호 작용에 응답하는 경우에 특히 유용합니다. 이는 사용자가 작업 결과를 관찰할 수 있을 만큼 실행을 지연할 수 있기 때문입니다. 절전 모드 간격 동안 스레드는 프로세서에서 시간 예약되지 않습니다.

SwitchToThread 함수는 간격을 지정할 수 없다는 점을 제외하고 SleepSleepEx와 유사합니다. SwitchToThread 를 사용하면 스레드가 시간 조각을 포기할 수 있습니다.