Проблемы с использованием multiprocessing.manager - PullRequest
1 голос
/ 12 февраля 2020

У меня были некоторые проблемы с использованием менеджера. Я хочу, чтобы два процесса обращались к одному списку, один писал и один читал его. Но данные были повреждены, поэтому я попытался привести пример для публикации здесь. Теперь у меня есть другая проблема. Я передаю список в качестве аргумента функции, но код не работает и говорит, что я передаю два аргумента вместо один . Вот код: импорт многопроцессорной

def mde(dad):
    for i in range(100):
        for j in range(10):
            dad[0] = i
            dad[1] = j
def mda(dad):
    c = 0
    while c < 1001:
        print(dad)
        c += 1

if __name__ == '__main__':
    manager = multiprocessing.Manager()
    dado = manager.list([0, 0])
    print(dado)
    p1 = multiprocessing.Process(target=mde, args=dado)
    p2 = multiprocessing.Process(target=mda, args=dado)
    p1.start()
    p2.start()
    p1.join()
    p2.join()

1 Ответ

1 голос
/ 12 февраля 2020

Отправьте свои аргументы как кортеж:

import multiprocessing
def mde(dad):
    for i in range(100):
        for j in range(10):
            dad[0] = i
            dad[1] = j
def mda(dad):
    c = 0
    while c < 1001:
        print(dad)
        c += 1

if __name__ == '__main__':
    manager = multiprocessing.Manager()
    dado = manager.list([0, 0])
    print(dado)
    p1 = multiprocessing.Process(target=mde, args=(dado,))
    p2 = multiprocessing.Process(target=mda, args=(dado,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...