Ich versuche, 5 Threads zu laufen, die jeweils weitere 10 Threads ausführen. Etwas wie:Python Queue Doppelthreading
dictionaryFileQueue = Queue.Queue()
with open(dictionaryFile, "r") as wordsToCheck:
for word in wordsToCheck:
dictionaryFileQueue.put(word)
for wordToScan in wordsList:
#...some code
dictionaryFileOpen = dictionaryFileQueue
for i in range(10):
i_thread = Thread(target=words_Scan_Start, args=(dictionaryFileOpen, wordToScan))
threads.append(i_thread)
for thread in threads:
for wordThread in thread:
wordThread.start()
def words_Scan_Start(dictionaryFile, wordToScan):
# Here I need to make an action with "wordToScan".
# But in 10 threads "range(10)" and use the same "dictionaryFileOpen" for every thread.
#...............
BUT, ich brauche, dass jeder wordToSacn
Thread seine eigenen dictionaryFileQueue
verwendet, die stammt aus gemeinsamer Quelle (dictionaryFileQueue
auf dem ersten Linie). Weil, wenn ich alle Threads starte, alle nur eine Warteschlange verwenden. Aber ich brauche eine Kopie der Warteschlange für jeden wordToScan
. Wie kann ich jedes wordToScan
nur Kopie der Warteschlange verwenden und seine Aufzählung von der ersten Zeile beginnen? Wie man es seine eigene Warteschlange verwenden lässt, die von der allgemeinen Quelle kommt?
Ich vermisse 'Warteschlange 'Punkt, warum brauchst du? Wenn Sie Prozessschwanz haben, wie mehrere Bedrohungen gleichzeitig ausgeführt werden? – dsgdfg
Warteschlange ist analog für 'dictionaryFile.readline()'. Ich brauche es nur, damit jeder Thread nur die nächste Zeile der Datei liest, wenn ein Thread diese Zeile bereits gelesen hat. – passwd
Trennen Sie jede Warteschlange, aber wie werden Jobs in jeden Thread aufgeteilt? Brauchen Sie Thread-Manager für welchen Erfolg oder fehlgeschlagen und Daten zurückgegeben! Sie können keinen Apfel zeichnen, ohne zuvor einen Baum gezeichnet zu haben. – dsgdfg