Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Rückgabewerte von Python-Threads abrufen?

Wie kann ich Rückgabewerte von Python-Threads abrufen?

Barbara Streisand
Freigeben: 2024-12-17 06:10:26
Original
576 Leute haben es durchsucht

How Can I Retrieve Return Values from Python Threads?

Zugriff auf Rückgabewerte von Threads

Wenn Threads in Python erstellt werden, kann ihre Zielfunktion einen Wert zurückgeben. Das Abrufen dieses Rückgabewerts vom Hauptthread ist jedoch mit Standardmethoden nicht einfach.

Eine Möglichkeit besteht darin, ein veränderbares Objekt, z. B. eine Liste oder ein Wörterbuch, an den Thread zu übergeben und das Ergebnis in einem dafür vorgesehenen Slot zu speichern . Diese Methode erfordert die Übergabe zusätzlicher Argumente an den Thread und die Aufrechterhaltung der Verbindung zwischen dem Thread und dem Objekt.

Ein anderer Ansatz besteht darin, die Thread-Klasse in Unterklassen zu unterteilen und die Ausführungs- und Join-Methoden zu überschreiben. Bei der überschriebenen Ausführungsmethode wird der Rückgabewert der Zielfunktion in einem privaten Attribut innerhalb der Unterklasse gespeichert. Die überschriebene Join-Methode gibt den in diesem Attribut gespeicherten Wert zurück.

Hier ist ein Beispiel mit der ThreadWithReturnValue-Unterklasse:

class ThreadWithReturnValue(Thread):
    
    def __init__(self, group=None, target=None, name=None,
                 args=(), kwargs={}, Verbose=None):
        Thread.__init__(self, group, target, name, args, kwargs)
        self._return = None

    def run(self):
        if self._target is not None:
            self._return = self._target(*self._args,
                                                **self._kwargs)
    
    def join(self, *args):
        Thread.join(self, *args)
        return self._return
Nach dem Login kopieren

So verwenden Sie diese Unterklasse:

twrv = ThreadWithReturnValue(target=foo, args=('world!',))

twrv.start()
print(twrv.join())  # prints 'foo'
Nach dem Login kopieren

While Diese Methode ist effektiv, sie erfordert jedoch eine Anpassung der Thread-Klasse, was möglicherweise nicht in allen Szenarien wünschenswert ist. Letztendlich hängt der beste Ansatz von den spezifischen Bedürfnissen und Anforderungen der Anwendung ab.

Das obige ist der detaillierte Inhalt vonWie kann ich Rückgabewerte von Python-Threads abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage