ich Probleme, bin Rückgabewert aus einem Unterprogramm Extrahieren ich aus einem Thread lief, in Python 3.Wie einen Rückgabewert aus einem Unterprogramm läuft in einem Thread zu bekommen
import threading
from threading import Thread
def dothis():
x = 17
return x
Thread(target = dothis).start()
print(x)
Das gibt mir nur ein Fehler und sagt, dass x nicht definiert ist, aber ich habe es von meinem Unterprogramm zurückgegeben. Kann mir jemand in die richtige Richtung zeigen?
Ein Problem ist, dass Sie den Rückgabewert überhaupt nicht sammeln. Auch ohne Threading müssten Sie den zurückgegebenen Wert x zuweisen, damit x einen Wert hat, weil x nur im Bereich der dothis-Funktion existiert. Da Sie einen anderen Thread gestartet haben, können Sie nicht wissen, ob die Ausführung abgeschlossen ist, bevor print (x) ausgeführt wird, weil Sie nicht mit dem neuen Thread synchronisiert haben. – poompt
Sie sollten wahrscheinlich eine Warteschlange verwenden - siehe z. [diese Antwort] (https://stackoverflow.com/a/36926134/984421) auf die verknüpfte dup-Frage. – ekhumoro