Только в методе Execute добавьте Sleep(1) хотя-бы на каждом проходе while.
Ваш пример загрузит процессор, распределив нагрузку между ядрами, но при этом каждый поток будет обрабатываться не в отдельном ядре, а нагрузка от всех этих потоков будет распределена между ядрами. Может даже так случится, что 4 потока будут работать только на 3 ядрах, совершенно не используя остальные.
ПС: Не уверен, т.к. не пользовался, но с помощью функции SetThreadAffinityMask можно реально заставить конкретный поток исполнятся на конкретном ядре.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
|