Программа с одним потоком Создание двух потоков
Я анализировал (с помощью 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 секунд после запуска программы.