Программа с одним потоком Создание двух потоков

Я анализировал (с помощью 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), но второй вместо этого создает два потока ( procmon csv). Мне интересно, почему это происходит, и как я могу гарантировать, что "однопоточные программы" создают только один поток на втором сервере. Может быть, я что-то здесь упускаю. Я собираюсь описать свойства каждого VPS:

Первый VPS
ОС: Windows Server 2012 R2
Процессор: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2,40 ГГц 2,40 ГГц, 2 ядра, 2 логических процессора
Установленная память (RAM): 6,0 ГБ
Тип системы: 64-разрядная операционная система, 64-разрядный процессор

Второй VPS
ОС: Windows Server 2016
Процессор: Intel(R) Xeon(R) CPU E5-2630 v4 @ 2,20 ГГц 2,20 ГГц, 6 ядер, 6 логических процессоров
Установленная память (RAM): 24,0 ГБ
Тип системы: 64-разрядная операционная система, 64-разрядный процессор

Для дальнейшего анализа я немного изменил свой код следующим образом:

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

Я запустил предыдущий код и использовал Process Explorer, чтобы увидеть его поведение, а второй поток был создан и удален через 30 секунд после запуска программы.

0 ответов

Другие вопросы по тегам