Вы, по сути, ответили на свои вопросы!
Ключевая черта кода, который сжигает много ЦП, заключается в том, что он никогда не делает ничего, что блокирует (например, ожидание сетевого или файлового ввода-вывода), иникогда не возвращает добровольно свой временной интервал (например, sleep () и т. д.).
Другая хитрость заключается в том, что код должен делать то, что компилятор не может оптимизировать.Так что, скорее всего, ваш код записи в ЦП выводит что-то на основе вычисления цикла в конце или просто компилируется без оптимизации, чтобы оптимизатор не испытывал соблазна удалить бесполезный цикл.Поскольку вы пытаетесь загрузить ЦП, в любом случае нет смысла оптимизировать.
Поскольку вы предположили, что однопоточный код, соответствующий этому описанию, будет насыщать ядро ЦП, если ОС не имеет больше этих процессов, чем имеетЯдра для их запуска - тогда он будет распределять их по кругам, и загрузка каждого из них будет составлять некоторую долю от 100%.