
<p>在无任何功能代码的情况下运行控制台,会发现有三个线程在运行</p><p><img alt="" loading="lazy" src="https://img.php1.cn/3cd4a/1eebe/cd5/b386c433a16f5497.webp"/></p><p> </p><p> </p><p> SO 的答案指出,在程序一开始运行时,为加快进程启动,windows 会利用多个 CPU 内核更快地初始化。</p><p>ntdll.dll 线程实际上是从链接的库启动的操作系统线程,所有代码都在线程 26372 上运行。</p><p>通常这些线程池工作者为应用程序加载其他动态库。<br/></p><p>参考:why a c++ application has three threads started by default?</p><p>大概过半分钟后,ntdll.dll 线程就会自动消失</p><p><img alt="" loading="lazy" src="https://img.php1.cn/3cd4a/1eebe/cd5/99b88427bc9ce0dc.webp"/></p><p> </p><p> 因为 Windows 10 实现了一种加载 DLL 的新方法 - 多个工作线程并行执行 ( )。所有 Windows 10 进程现在都有几个这样的线程。</p><p> 创建了一个特殊的加载器线程池 - ,具有 最大线程数。空闲超时设置为 30 秒(之后线程退出)</p><p>所以我们会发现只剩下一个线程了,详细解释见:Why there are three unexpected worker threads when a Win32 console application starts up?</p><br><hr/><p> 线程工具使用:VS 编译器中选择调试 -> 窗口 -> 线程,就会默认打开一个窗口,在代码上打个断点后,窗口就会自动出现线程信息</p><p>另外一个工具使用:pslist.exe 下载:https://docs.microsoft.com/en-us/sysinternals/downloads/pslist</p><p>使用命令:pslist.exe 查看所有进程的信息,包括线程的数量</p><p> pslist.exe -d pid pid 为进程 ID,查看特定进程的线程信息</p><p><img alt="" loading="lazy" src="https://img.php1.cn/3cd4a/1eebe/cd5/5b97d3b808d031e2.webp"/></p><br> <br>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/160049.html