Я хотел бы запустить n заданий, выполняющих следующую работу:
# work.py
import time
import random
while True:
print(random.randint(0,9))
time.sleep(1)
где n — количество доступных ядер.
Как можно использовать параллели GNU в такой ситуации?
Вы должны уметь использовать:
seq $(parallel --number-of-cores) |
parallel -N0 --line-buffered python3 -u ./work.py
Но мне интересно, почему вы не используете встроенную многопроцессорность Python, а не вводите дополнительную зависимость.
Спасибо за ответ. Сначала я начал использовать многопроцессорный модуль Python, но понял, что пишу много кода для малой функциональности. GNU parallel позаботится о многих вещах за кулисами, а также о наиболее распространенных ловушках, связанных с распараллеливанием. Я пересмотрю это позже. В любом случае, еще раз спасибо!