> 백엔드 개발 > C++ > 본문

Windows 10 C 응용 프로그램에서 다중 스레드가 생성되는 이유는 무엇입니까?

DDD
풀어 주다: 2024-10-27 00:46:30
원래의
335명이 탐색했습니다.

Why are Multiple Threads Created in Windows 10 C   Applications?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿