补全:提交一个、取结果
(每道题开头都有同一段:上面的池小工具。)
贯穿全条的池小工具(标准库 ThreadPoolExecutor:固定 workers 个线程复用):
pool_sum(fn, args, workers) 池对每个参数跑 fn,交回所有结果之和(和与顺序无关,确定)
pool_map(fn, args, workers) map 按提交顺序回结果(顺序确定)
one_future(fn, x, workers) 提交一个任务,交回它的 Future 的 result()
submit_all(fn, args, workers) 提交全部,按提交顺序 result() 收结果
pool_peak(ntasks, workers) = min(ntasks, workers) 一次最多几个在跑
reuse(ntasks, workers) = (workers, ntasks) 池建几个线程 / 手写要建几个补全 get_one(x):用 workers=2 的池 submit dbl(x)(翻倍),返回它的 result()。看 dbl(21) 的结果。
全部评论