Итак, в последнее время я экспериментировал с модулем многопроцессорности. Я написал этот сценарий, чтобы проверить это:Многопроцессорность Python: Объект процесса не вызываемый
from multiprocessing import Process
from time import sleep
def a(x):
sleep(x)
print ("goo")
a = Process(target=a(3))
b = Process(target=a(5))
c = Process(target=a(8))
d = Process(target=a(10))
if __name__ == "__main__":
a.start()
b.start()
c.start()
d.start()
Однако, когда я пытаюсь запустить его, он выдает эту ошибку:
goo
Traceback (most recent call last):
File "C:\Users\Andrew Wong\Desktop\Python\test.py", line 9, in <module>
b = Process(target=a(5))
TypeError: 'Process' object is not callable
... И я не могу сказать, что происходит. Кто-нибудь знает, что произошло, и как я могу это исправить?
Это не решит проблему. Он запускает первый процесс, но не запускает другие, что приводит к той же ошибке: TypeError: объект «Process» не может быть вызван. Я также изучаю, что вызвало эту проблему, так как это делает документация. – DJanssens
Побей меня; Быстрая заметка об этом, есть конфликт имен между 'def a (x)' и 'a = Process ...'. Переименование переменной или функции исправляет это, и я запускаю его локально. @DJanssens важна конечная запятая в кортеже args, она не будет работать без нее. –
Исправление конфликта имен разрешает проблему Люка Меррета! nice one;) Я предлагаю, чтобы кто-то публиковал это как реальный ответ, или @alfasin обновляет его. – DJanssens