我想在写入文本文件时使用多线程来提高使用迭代器的效率。
此处显示了不使用多线程的解决方案:
import itertools
Dictionary_file = open("C:\\Users\\user\\Desktop\\\Dictionary.txt", 'r')
File_of_combinations = open("C:\\Users\\user\\Desktop\\File_of_combinations", 'w')
dictionary = []
for word in Dictionary_file:
dictionary.append(word.strip())
for x in (itertools.permutations(dictionary, r=3)):
File2.write(' '.join(x) + '\n')
File2.close()
(获取一个字典.txt文件,并将每3个字的组合写入另一个.txt文件中)
from multiprocessing import Pool
import itertools
Dictionary = open("C:\\Users\\user\\Desktop\\Dictionary.txt", 'r')
File_of_combinations =
open("C:\\Users\\user\\Desktop\\File_of_combinations.txt", 'w')
dictionary = []
for word in Dictionary:
dictionary.append(word.strip())
def record_combination(itertools):
for x in itertools:
File_of_combinations.write(' '.join(x) + '\n')
File2.close()
pool = Pool()
pool.map(record_combination,(itertools.permutations(dictionary, r=3)))
我认为正在发生的事情是record_combination方法将迭代器作为参数传递给了它,但是,与我的第一个示例不同,它利用了所有处理器。
接受,第二个示例不起作用。为什么会这样?
任何帮助将不胜感激