0
각각 다른 10 개의 쓰레드를 실행하는 5 개의 쓰레드를 실행하려고합니다. 뭔가 같이 :파이썬 큐 이중 쓰레드
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
은 Queue의 복사본 만 사용하고 첫 번째 줄에서 열거를 시작할 수 있습니까? 공통 소스에서 오는 자체 대기열을 사용하는 방법
나는'대기열 '요점, 왜 필요한거야? 프로세스 꼬리가 있다면 동시에 여러 위협을 실행하는 방법? – dsgdfg
큐는'dictionaryFile.readline()'과 유사합니다. 일부 스레드가 이미 해당 행을 읽으면 모든 스레드가 파일의 다음 행만 읽도록해야합니다. – passwd
모든 대기열을 분리하지만 모든 스레드에 작업을 분할하는 방법은 무엇입니까? 성공 또는 실패한 데이터를 반환하는 스레드 관리자를 만들어야합니다! 나무를 그리지 않고 사과를 그릴 수는 없습니다. – dsgdfg