Ich habe dieses Beispiel-Code:Python - Threading - execute gleichzeitig
# some imports that I'm not including in the question
class daemon:
def start(self):
# do something, I'm not including what this script does to not write useless code to the question
self.run()
def run(self):
"""You should override this method when you subclass Daemon.
It will be called after the process has been daemonized by
start() or restart().
"""
class MyDaemon(daemon):
def run(self):
while True:
time.sleep(1)
if __name__ == "__main__":
daemonz = MyDaemon('/tmp/daemon-example.pid')
daemonz.start()
def firstfunction():
# do something
secondfunction()
def secondfunction():
# do something
thirdfunction()
def thirdfunction():
# do something
# here are some variables set that I am not writing
firstfunction()
Wie kann ich Austritt aus dem Lauf (Selbst-) Funktion der Klasse „Daemon“ und gehen die firstfunction auf Ausführen() wie in der schriftlichen letzte Linie? Ich bin ein Neuling mit Python, und ich versuche zu lernen
# EDIT ich es geschafft, den Daemon-Klasse in die treading Klasse zu implementieren. Aber ich bin in der gleichen Situation von zuerst, das Skript bleibt in Daemon-Klasse und führt die anderen Zeilen nicht aus.
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def daemonize(self):
# istructions to daemonize my script process
def run(self):
self.daemonize()
def my_function():
print("MyFunction executed") # never executed
thread = MyThread()
thread.start()
my_function() # the process is successfully damonized but
# this function is never executed
Ihr Code wird in der while-Schleife in MyDaemon stecken bleiben, nicht wahr? Aus diesem Grund erreicht Ihr Code nie die erste Funktion(). –
Die 'while True' Bedingung in der 'run()' Methode wird Ihr Programm für immer in der Schleife halten. Hast du vor, stattdessen eine andere Bedingung zu haben? – Sanjay
eigentlich muss ich die nächsten Anweisungen in def run (self) der Klasse "daemon" schreiben, aber im Moment habe ich nichts geschrieben, weil ich gefragt habe, was ich tun kann, um die anderen Befehle aus der Klasse zu übernehmen, wie in die letzte Zeile "firstfunction()". Wie kann ich? – AllExJ