Wie kann ich eine multiprocessing.Process innerhalb __init__()
einer Klasse, eine andere Funktion in dieser Klasse Targeting? Die Klasse selbst soll kein Prozess sein. __init__()
soll sich auf eine Klassenvariable beziehen, die in der Klasse zugewiesen ist, nicht innerhalb irgendeiner Funktion.Starten Sie multiprocessing.Process der Methode in der Klasse, von __init __()
Arbeitscode:
import multiprocessing as mp
class SomeClass:
def __init__(self):
p_process1 = mp.Process(target=self.process1)
p_process1.start()
def process1(self):
while True:
pass
Der Code Ich möchte:
import multiprocessing as mp
class SomeClass:
def __init__(self):
self.p_process1.start()
def process1(self):
while True:
pass
p_process1 = mp.Process(target=process1)
Wenn ich jetzt versuchen, den Code Ich will zu laufen, bekomme ich eine Fehlermeldung:
Process Process-1:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
TypeError: process1() missing 1 required positional argument: 'self'
seien Sie vorsichtig mit den vorgeschlagenen Änderungen wie [Ihr] (https://stackoverflow.com/review/suggested-edits/16803834): Die Sprache wurde bereits festgelegt ([tag: go]), und Sie können Mach keine zufälligen Bearbeitungen. –