WinAPI 절전 기능 수수께끼: 예상보다 긴 절전 모드
매개변수 1로 WinAPI 절전 기능을 호출하면 사용자에게 스레드 지연이 발생할 수 있습니다. 예정된 기간을 초과했습니다. 실제로 100번의 Sleep(1) 호출을 반복하면 총 수면 시간이 1500ms로 규정된 100ms보다 훨씬 깁니다.
긴 수면의 원인:
이 동작은 Windows 스레드 스케줄러에 내재되어 있습니다. 이는 시간 할당량, 즉 스레드가 실행될 수 있는 정의된 기간에 따라 작동합니다. 0이 아닌 지연은 본질적으로 가장 가까운 완전한 양자로 반올림됩니다.
타당한 시스템 문제:
관찰된 동작은 일반적이지만 이를 배제하는 것이 유리할 수 있습니다. 문제를 악화시킬 수 있는 잠재적인 시스템 문제:
추가 고려 사항:
실행 중인 다른 프로그램이 시스템 전체 타이머 해상도를 조정하여 잠재적으로 양자 크기가 더 작아질 수 있다는 점은 주목할 만합니다. 이는 Sleep(1) 지연이 의도된 1ms 기간 내에 있는 것으로 보고되는 인스턴스를 설명할 수 있습니다. Windows 7의 기본 타이머 해상도는 1ms가 아닌 약 15.6ms여야 합니다.
위 내용은 ## WinAPI의 Sleep(1)이 예상보다 긴 절전 모드를 유발하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!