1

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

int main() {
    return 0;
}

我在两台机器上都用g++ (tdm64-1) 5.1.0编译了前面的代码。我只是将代码编译为g++ Test.cpp -o Test.exe. 之后,我Test.exe在两台服务器上运行该文件并使用 Procmon 进行过滤。第一个 VPS 显示了单个线程 ( procmon csv ) 的创建,但第二个 VPS 创建了两个线程 ( procmon csv )。我想知道为什么会发生这种情况,以及如何确保“单线程程序”在第二台服务器中只创建一个线程。也许我在这里错过了一些东西。我将描述每个 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
系统类型: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
系统类型:64 位操作系统, 基于 x64 的处理器

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

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

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

在此处输入图像描述

4

0 回答 0