python - 多处理不返回所有值
问题描述
这可能是一个非常简单的问题,但绝对让我筋疲力尽。为了使用多处理,我编写了以下函数 thread() 来并行化函数破解。Function Crack 在一个列表中返回多个列表。但是当我使用线程函数时,它不会返回每个值。我该如何解决?
UPPER_ALPHA = ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D',
'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', ]
def crack(UPPER_ALPHA):
GEN = list(itertools.product(UPPER_ALPHA, repeat=4))
return GEN
def thread(w_input):
pool = mp.Pool()
results = pool.map(crack,UPPER_ALPHA)
print(results)
pool.close()
pool.join()
解决方案
正在寻找这样的结果吗?
from multiprocessing import Pool, Process
from functools import partial
#Function for single process
def function(rep, val):
return (val,) * rep
# Function for handling multiprocessing
def handler(function, data, rep, workers=4):
func = partial(function,rep)
with Pool(workers) as pool:
r = pool.map(func, data)
return r
data = ['a','b', 'c']
GEN = handler(function, data, 2, workers=4)
print(GEN)
结果:
[('a', 'a'), ('b', 'b'), ('c', 'c')]
推荐阅读
- javascript - 反应组件中的滑块返回“无法读取未定义的属性样式”
- python-2.7 - 如何在 wxpython 中绘制面板的边框中心?
- python-3.x - 在烧瓶棉花糖/棉花糖-sqlalchemy 中将 WKB 序列化为 WKT 或 geojson
- jquery - 如何将引导标签设计应用于 html 表的状态列中显示的数据库值
- java - java中的MP4视频压缩器
- javascript - 从表单调用flask函数并在同一页面上显示结果
- sonarqube - Sonarqube 用于覆盖和覆盖
- javascript - 如果其他反应,你可以内联运行函数吗?
- sql-server - 标记满足两个条件且第三个值最低的所有行
- c++ - 从 gcc 4.6.3 移植到 5.4.0 时出现 basic_string.h 错误