多处理池为您实现了一个队列。只需使用将工作程序返回值返回给调用方的池方法即可。imap运作良好:
import multiprocessing import redef mp_worker(filename): with open(filename) as f: text = f.read() m = re.findall("x+", text) count = len(max(m, key=len)) return filename, countdef mp_handler(): p = multiprocessing.Pool(32) with open('infilenamess.txt') as f: filenames = [line for line in (l.strip() for l in f) if line] with open('results.txt', 'w') as f: for result in p.imap(mp_worker, filenames): # (filename, count) tuples from worker f.write('%s: %dn' % result)if __name__=='__main__': mp_handler()


