单线程程序创build两个线程

我正在分析(与Procmon )一个非常简单的程序在两个不同的VPS即将租用。 该程序是一个最小的C ++程序:

int main() { return 0; } 

我在两台机器上用g ++(tdm64-1)5.1.0编译了以前的代码。 我刚刚编译的代码为g++ Test.cpp -o Test.exe 。 之后,我在两台服务器上运行Test.exe文件,并使用Procmon进行过滤。 第一个VPS显示创build一个单线程( procmon csv ),但第二个创build两个线程,而不是( procmon csv )。 我想知道为什么会发生这种情况,我怎样才能确保“单线程程序”在第二台服务器上只创build一个线程。 也许我在这里错过了什么。 我将要描述每个VPS的属性:

第一个VPS
操作系统Windows Server 2012 R2
处理器 :Intel(R)Xeon(R)CPU E5-2620 v3 @ 2.40GHz 2.40 GHz,2个核心,2个逻辑处理器
安装的内存(RAM) :6.0 GB
系统types :64位操作系统,基于x64的处理器

第二个VPS
操作系统 :Windows Server 2016
处理器 :Intel(R)Xeon(R)CPU E5-2630 v4 @ 2.20GHz 2.20 GHz,6核,6个逻辑处理器
安装的内存(RAM) :24.0 GB
系统types :64位操作系统,基于x64的处理器

为了进一步分析,我稍微改了一下我的代码:

 int main() { while (true); return 0; } 

我运行了前面的代码,并使用Process Explorer来查看它的行为,并在程序运行30秒后创build并删除了第二个线程。

在这里输入图像描述