Ich habe ein Array mit Befehlen gefüllt und ich möchte alle Befehle zur gleichen Zeit ausführen.Dynamisch erstellen Funktionen und Threads in Python
Bisher habe ich:
import threading
...
def MyThread0():
exec commandArray[0]
def MyThread1():
exec commandArray[1]
t1 = threading.Thread(target=MyThread0(), args=[]).start()
t2 = threading.Thread(target=MyThread1(), args=[]).start()
Während dies noch akzeptabel sein, wenn es nur zwei Threads (es scheint, zumindest zu arbeiten), ist es sicherlich nicht, wenn die Länge des commandArray unbekannt ist zur Laufzeit. Wie mache ich das effizient für x Anzahl der Threads?
PS: Es ist durchaus möglich, dass all dies Junk ist, da ich Multithreading neu bin. Konstruktive Kritik wird sehr geschätzt.
import threading
...
def run_it_boy(index):
exec command_array[index]
for i in range(number_of_commands):
t[i] = threading.Thread(target=run_it_boy, args=(i,))
t[i].start()
Beachten Sie, dass:
Für den Anfang, Sie mögen nicht die '()' nach den Namen der Funktionen, wenn die Fäden zu schaffen. Dadurch wird die Funktion aufgerufen, bevor die Zeile ausgewertet wird. – DeepSpace