2016-10-11 1 views
1

Скажем, я запускаю 10 процессов в цикле, используя Process(), но у меня есть только 8 ядер. Как python справляется с этим?Многопроцессорность Python запускает больше процессов, чем ядра

+1

Я не думаю, что Python заботится. Это зависит от того, как обрабатывается ваша ОС; скорее всего, чередующимися процессами. – Evert

+1

взгляните на это http://stackoverflow.com/questions/36795086/on-what-cpu-cores-are-my-python-processes-running – xCodeZone

+0

https://github.com/python/cpython/blob/ master/Lib/multiprocessing/process.py – enderland

ответ

1

Хотя лучше всего использовать столько потоков, сколько у вас есть виртуальные ядра, вам не обязательно придерживаться этого. Используя меньшее количество средств, вы можете недоиспользовать доступную емкость процессора. Используя больше средств, вы будете чрезмерно использовать доступную емкость процессора.

Обе эти ситуации означают, что вы будете работать медленнее, чем в противном случае. (Хотя использование большего количества потоков, чем у вас есть ядер, имеет меньшее влияние, чем использование меньшего количества потоков, чем у ваших ядер.)