Windows 10의 C 응용 프로그램에서 신비한 스레드 생성
이번 문의에서 실행 시 예상치 못한 추가 스레드 생성과 관련하여 당황스러운 관찰이 이루어졌습니다. Windows 10의 간단한 C 프로그램입니다. Visual Studio 2015를 사용하여 다음 코드로 새로운 콘솔 애플리케이션이 생성되었습니다.
<code class="cpp">int main() { return 0; }</code>
return 문에 중단점을 설정하고 디버거에서 프로그램을 실행하면 프로그램은 Windows 7에서 단 하나의 스레드만 표시했습니다. 그러나 Windows 10에서는 놀랍게도 5개의 스레드가 존재했습니다. 즉, 기본 스레드와 동기화 개체를 기다리는 4개의 추가 "작업자 스레드"입니다.
공개 스레드 출처
제시된 질문은 "누가 이 추가 스레드를 시작합니까?"였습니다. 조사하려면 "디버그 > Windows > 스레드" 창에 액세스하고 향상된 가시성을 위해 Microsoft 기호 서버를 활성화하는 것이 좋습니다. 이를 통해 추가 스레드가 "ntdll.dll!TppWorkerThread"로 식별되었음을 알 수 있습니다.
DLL 로딩의 역할
TppWorkerThread() 진입점에 중단점을 설정하면 결과가 나옵니다. 이러한 스레드의 출처에 대한 통찰력을 제공하는 귀중한 스택 추적입니다. Windows 10 로더가 DLL을 로드하기 위해 스레드 풀을 활용하고 있는 것으로 나타났습니다. 이 동작은 Windows 7에는 없었으며, 이는 Windows 10의 초기화 프로세스에 큰 변화가 있음을 나타냅니다.
더 빠른 시작을 위한 동시 초기화
Windows 10은 다중 코어를 활용하여 속도를 효과적으로 높입니다. 메인 스레드와 DLL 로딩 작업을 동시에 실행하여 애플리케이션 초기화를 진행합니다. 이 동작은 전반적인 초기화 성능을 향상시키고 Windows 10의 고급 리소스 관리 기능의 장점을 보여줍니다.
위 내용은 Windows 10 C 응용 프로그램에서 다중 스레드가 생성되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!