@Sinrel
пишу на питоне для себя. Уровень ниже джуна

Как остановить процессы с библиотекой multyprocessing?

Пишу бесконечный календарь, захотел применить многопроцессорность и столкнулся с такой проблемой, что доп процесс выдает ошибку, но ответ выдает. Как избавиться от сообщений об ошибках?

if __name__  ==  '__main__':
    
    count_vis_years = multiprocessing.Process(target=count_vis(search_date[2]+1, count_vis_years))
    
    count_vis_years.start()
    
    count_vis_years.join()


count_vis это вызываемая функция, собственно с аргументами внутри них
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@dima20155
you don't choose c++. It chooses you
Избавиться от сообщений об ошибках каких?
Прежде всего посмотрите хотя бы примеры использования multiprocessing
https://docs.python.org/3/library/multiprocessing.....
Вы должны передать в таргет не результат выполнения функции count_vis(), а саму функцию (указатель на функцию, если хотите в терминах С или функтор), то есть count_vis, а следующим аргументом args - то, что принимает ваша функция в качестве входных параметров.

Вот прям копипаст из документации, посмотрите в чем отличия от вашего кода.
from multiprocessing import Process

def f(name):
    print('hello', name)

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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