@FewSeconds

Как решить проблему с multiprocessing?

Привет всем. Столкнулся со следующей проблемой: есть некая функция, которая вызывается многопоточно, и есть код, который должен выполняться как обычно (синхронно) после того, как функция отработает, однако все идет не так: после того, как функция вызывается, код, который должен выполняться синхронно, выполняется многопоточно, и вся программа превращается в кашу. Подскажите, пожалуйста, как можно решить эту проблему и сделать так, чтобы мультипроцессинг распространялся только на функцию, которая ему указана, а не на всю программу. Вот пример кода:

from concurrent.futures import ProcessPoolExecutor as Pool


def example(string):
	print(string*2)

### пределы в которых мультипроцессинг начинает свою работу

if __name__ == "__main__":
	with Pool(3) as p:
		p.map(example, ["2131", "213123123", "12312312312", "1231231231"])

### пределы в которых мультипроцессинг должен оканчивать свою работу и програма продолжала работу в обычном режиме

"""
Какой-то код, который должен выполняться синхронно как обычно...
"""
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, стоит определиться всё-таки многопоточно или multiprocessing. Во-вторых, ваш синхронный код скорее всего расположен на верхнем уровне исходного кода, а потом выполняется, когда multiprocessing создаёт новые процессы скрипта.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы