Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不返回所有值的多处理_Python_Multiprocessing_Itertools_Brute Force - Fatal编程技术网

Python 不返回所有值的多处理

Python 不返回所有值的多处理,python,multiprocessing,itertools,brute-force,Python,Multiprocessing,Itertools,Brute Force,这可能是一个非常简单的问题,但肯定让我筋疲力尽。为了使用多处理,我编写了以下函数thread(),它将函数crack并行化。函数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',

这可能是一个非常简单的问题,但肯定让我筋疲力尽。为了使用多处理,我编写了以下函数thread(),它将函数crack并行化。函数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')]

你还没有实现,甚至没有描述,你试图在一个单线程的上下文中进行的暴力强迫;你要求我们:1)猜猜你在做什么2)实现它3)并行化实现。单是3个就太宽泛了;对于这三个问题,你基本上是要求我们从头开始做作业,甚至没有提供指导。如果你甚至不知道从哪里开始,和你的老师谈谈。如果你想出了一个看起来应该有效,但实际上无效的问题,那么就用一个新的问题贴出来,供大家帮助。不,这不是家庭作业。我只是问如何将这个单线程上下文转换为多线程。顺便说一句,我忘了告诉你如何为每个工作人员分配工作抱歉,我改变了问题。你能解释变量func是函数的包装器中发生了什么吗。它只接受一个输入参数,其中函数接受两个参数。partial()允许我们减少函数的参数,并为更有限的函数设置固定值。好的,但我如何在函数中使用它。我想你误解了这个问题。