Начиная с большим количеством не является необходимой, так как деление на 2 быстро закончить как 0/2
снова и снова в любом случае. Кроме того, вам не нужно на самом деле ничего делать в цикле, чтобы потреблять циклы процессора - простого действия цикла достаточно. Вот почему любой бесконечный цикл, даже такой простой, как while 1: pass
, будет дожидаться всего ядра процессора до его смерти. Чтобы избежать использования всего ядра, используйте time.sleep
, чтобы приостановить выполнение потока в течение определенного периода времени. Эта функция принимает один аргумент, представляющий время в секундах, когда поток спал. Он принимает число с плавающей запятой.
import time
while 1:
time.sleep(0.0001)
Просто запустите экземпляр этого сценария (с соответствующим временем сна для рабочей нагрузки, которую вы хотите положить на вашей конкретной системе) для каждого ядра вы хотели бы проверить.
Обратите внимание, что некоторые операционные системы могут не поддерживать время сна менее одной миллисекунды, в результате чего более короткие спящие времена проходят через ноль, что делает их несовместимыми с этой стратегией. См. Python: high precision time.sleep и How accurate is python's time.sleep()? для получения дополнительной информации.
это не ответ, но, возможно, он должен: не использовать Python для этого – MariusSiuram
'время импорта; а 1: time.sleep (n) 'для подходящего размера' n'. – TigerhawkT3
@mozcelikors вы можете сослаться на эту ссылку http://xmodulo.com/run-program-process-specific-cpu-cores-linux.html –