Я пытаюсь запустить 5 потоков, которые запускают еще 10 потоков каждый. Что-то вроде:Python Queue double threading
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.
#...............
НО, мне нужно, чтобы каждый wordToSacn
нить использует свой собственный dictionaryFileQueue
, который приходит от общего источника (dictionaryFileQueue
на первой линии). Потому что, когда я запускаю все потоки, все они используют только одну очередь. Но мне нужна копия очереди за каждые wordToScan
. Как я могу заставить каждый wordToScan
использовать только копию очереди и начать ее перечисление с первой строки? Как заставить его использовать свою собственную очередь, которая поступает из общего источника?
Я пропустил очередь 'point, зачем вам нужно? если у вас есть хвост процесса, как одновременно запускать несколько угроз? – dsgdfg
Очередь является аналоговой для 'dictionaryFile.readline()'. Мне нужно, чтобы каждый поток читал только следующую строку файла, если какой-то поток уже прочитал эту строку. – passwd
Отделить каждую очередь, но как разделить задания на каждый поток? Нужно создать диспетчер потоков, для которого успех или неудача и возвращаемые данные! Вы не можете рисовать яблоко без рисования дерева раньше. – dsgdfg